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

相关推荐
2601_954971132 小时前
没有SQL基础能学数据分析吗?先学什么更合适
数据库·sql·数据分析
PawSQL3 小时前
同一条SQL,单机秒回,分布式集群卡成PPT——问题究竟出在哪?
数据库·分布式·sql
金融小白数据分析之路3 小时前
go 查询 sql go-sqlite3 版本
sql·golang·sqlite
Edylan3 小时前
Android内存的全面分析-让你吃透
性能优化·架构
MU在掘金916953 小时前
CPU热点分析:调用链是怎么重建的
性能优化
尚雷55804 小时前
oracle知识整理_锁及等待事件SQL_第二部分
数据库·sql·oracle·锁及等待事件
未来龙皇小蓝5 小时前
SpringBoot API日志系统设计-02:线程池异步化与RabbitMQ解耦
数据库·spring boot·后端·性能优化·rabbitmq·java-rabbitmq
kyriewen1118 小时前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
开发语言·前端·javascript·后端·性能优化·rust·前端框架
冬天vs不冷20 小时前
面试必知必会(14):MySQL执行计划与SQL优化
sql·mysql·面试