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