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

相关推荐
在风中的意志几秒前
[数据库SQL] [leetcode] 614. 二级关注者
数据库·sql
拾荒李3 小时前
虚拟列表进阶-手搓不定高虚拟列表实现
javascript·性能优化
杨云龙UP4 小时前
SQL Server定时自动备份配置:使用SSMS维护计划向导配置数据库每日自动备份_20260101
运维·服务器·数据库·sql·sqlserver·桌面
qq_317620314 小时前
06:Docker安全加固与性能优化
docker·性能优化·权限控制·安全加固·镜像扫描
麦聪聊数据5 小时前
解构“逻辑数据仓库 (LDW)”与数据虚拟化
数据库·数据仓库·sql
宋军涛5 小时前
SqlServer性能优化
运维·服务器·性能优化
拾荒李6 小时前
性能优化-手搓定高虚拟列表实现
javascript·性能优化
冬奇Lab6 小时前
一次 Android 车机黑屏问题的深度剖析:当显示驱动遇上中断风暴
android·性能优化·debug
小鸡脚来咯6 小时前
Hive SQL与SQL不同处
hive·hadoop·sql
全栈前端老曹7 小时前
【前端路由】Vue Router 动态导入与懒加载 - 使用 () => import(‘...‘) 实现按需加载组件
前端·javascript·vue.js·性能优化·spa·vue-router·懒加载