关于sql 查询性能优化的小经验

最近接到一些sql优化的任务。数据库类型:DB2

有一个长sql查询效率低,大概要几十秒,大概查询逻辑如下:

select * from tableA a where exists (select 1 from tableB b where a.id=b.id )

or exists (select 1 from tableC c where a.id=c.id );

tableA ,tableB ,tableC都是大表,数据量大,最终执行时间要几十秒,

但是把or 条件改成 union all 却可以大大提升执行效率,时间降到几秒:

select * from tableA a where exists (select 1 from tableB b where a.id=b.id )

union all

select * from tableA a where exists (select 1 from tableC c where a.id=c.id );

小结:union all 替换 or 条件, 有时候可以提高查询效率。

相关推荐
未来龙皇小蓝27 分钟前
【MySQL-索引调优】09:Order By相关概念
数据库·mysql·性能优化
未来龙皇小蓝30 分钟前
【MySQL-索引调优】10:常见的分页优化处理
数据库·mysql·性能优化
少年攻城狮1 小时前
Oracle系列---【两个环境,表结构一致,数据量一致,索引也一致,为什么同样的sql执行时间却不一致?】
数据库·sql·oracle
小江的记录本1 小时前
【MyBatis-Plus】MyBatis-Plus的核心特性、条件构造器、分页插件、乐观锁插件
java·前端·spring boot·后端·sql·tomcat·mybatis
光影少年1 小时前
如何进行前端性能优化?
前端·性能优化
GoodStudyAndDayDayUp3 小时前
RUO-VUE-PRO权限关联sql
java·数据库·sql
次旅行的库3 小时前
【问渠哪得清如许-数据分析】学习笔记-下
数据库·笔记·sql·学习
kejiashao4 小时前
Android优化总结
性能优化
麦聪聊数据5 小时前
快速将Oracle数据库发布为 API:使用 QuickAPI 实现 SQL2API
数据库·sql·低代码·oracle·restful