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

相关推荐
xcLeigh4 小时前
IoTDB 性能优化双杀:查询分析与负载均衡实战指南
性能优化·负载均衡·时序数据库·iotdb
山岚的运维笔记5 小时前
SQL Server笔记 -- 第68章:内存中 OLTP(Hekaton)
数据库·笔记·sql·microsoft·sqlserver
java能飞翔5 小时前
在CentOS环境下修改mysql密码
sql
山岚的运维笔记6 小时前
SQL Server笔记 -- 第67章:数据库邮件(DBMAIL)
数据库·笔记·sql·microsoft·sqlserver
山峰哥9 小时前
数据库工程中的SQL调优实践:从索引策略到查询优化的深度探索
服务器·数据库·sql·性能优化·编辑器
@@神农10 小时前
PostgreSQL- SQL语句的执行过程(二)
数据库·sql·postgresql
阿林来了11 小时前
Flutter三方库适配OpenHarmony【flutter_speech】— 性能优化实践
flutter·性能优化
hhzz12 小时前
【回顾MySQL的SQL基础开发与应用】SQL分类与数据类型、视图、触发器以及存储过程与事件
数据库·sql·mysql
山岚的运维笔记1 天前
SQL Server笔记 -- 第65章:迁移 第66章:表值参数
数据库·笔记·sql·microsoft·sqlserver