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

相关推荐
Carsene4 小时前
第一章:为什么我们需要“类型安全”的 SQL DSL 框架?
java·sql
德彪稳坐倒骑驴5 小时前
SQL连续登录问题
服务器·数据库·sql
葡萄城技术团队5 小时前
告别臃肿 SQL:HR 系统如何实现“字段级”权限控制与动态脱敏方案?
数据库·sql
SQL必知必会5 小时前
SQL HAVING 是什么?一篇讲清 WHERE 和 HAVING 的区别
数据库·sql
小羊子说6 小时前
Android ANR 原理浅析
android·性能优化·车载系统
HackTorjan6 小时前
深度解析雪花算法及其高性能优化策略
人工智能·深度学习·算法·性能优化·dreamweaver
小短腿的代码世界8 小时前
Qt 2D 绘制实战与性能优化深度解析
开发语言·qt·性能优化
hhb_6188 小时前
SQL高性能查询优化与复杂场景实战指南
服务器·数据库·sql
SQL必知必会9 小时前
SQL 数据分析入门:如何把业务问题翻译成 SQL 查询
大数据·sql·数据分析