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

相关推荐
Csvn10 小时前
📊 SQL 入门 Day 6:多表查询 — JOIN 的四种姿势
后端·sql
光影62716 小时前
MySQL基础入门
数据库·笔记·sql·学习·mysql·学习方法
光影62717 小时前
MySQL 进阶篇 —— 事务 / 外键 / 索引 / 高级查询
数据库·笔记·sql·学习·mysql
淡海水18 小时前
06-04-YooAsset源码-Unity加密解密服务
前端·unity·性能优化·c#·游戏引擎·yooasset
至乐活着18 小时前
深入Python内存管理与垃圾回收:从引用计数到分代回收的实战解析
python·性能优化·内存管理·垃圾回收·引用计数
Csvn19 小时前
📊 SQL 入门 Day 5:GROUP BY & HAVING — 开始分组分析
后端·sql
就是小王同学啊20 小时前
Spring小技巧之设计模式
sql·spring·设计模式
ShoreKiten21 小时前
SQL注入之SQL Server增删改查
数据库·sql
<小智>1 天前
及时做APP开发实战(十一)-性能优化实践
性能优化
想你依然心痛1 天前
【共创季稿事节】HarmonyOS 6.1 悬浮页签重塑阅读 App 多任务体验实战
性能优化·状态管理·arkui·harmonyos 6.1·悬浮页签·多文档阅读·进度保持