关于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 条件, 有时候可以提高查询效率。

相关推荐
2501_916008898 小时前
深入解析iOS应用启动性能优化策略与实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
祖传F8710 小时前
SQL DATE()函数会抹去时间戳
数据库·sql
子牙老师10 小时前
软件虚拟化 vs 硬件虚拟化
linux·性能优化·云计算
BduL OWED11 小时前
SQL进阶——JOIN操作详解
数据库·sql·oracle
ERBU DISH12 小时前
修改表字段属性,SQL总结
java·数据库·sql
cyber_两只龙宝13 小时前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
一只fish14 小时前
SQL 性能优化实战:从入门到极致的七重境界
数据库·sql·性能优化
NCIN EXPE14 小时前
SQL sever数据导入导出实验
数据库·sql·oracle
kyriewen15 小时前
React性能优化:从“卡成狗”到“丝般顺滑”的5个秘诀
前端·react.js·性能优化
OtIo TALL15 小时前
SQL-触发器(trigger)的详解以及代码演示
服务器·数据库·sql