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

相关推荐
TDengine (老段)2 小时前
TDengine 一条 SQL 从客户端到执行完成的全链路
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
噗噗124 小时前
大型私域系统的 Webhook 回调高并发架构设计与性能优化
性能优化
唐青枫4 小时前
别只会写 IF:MySQL CASE WHEN 条件判断实战详解
sql·mysql
zhishijike6 小时前
全国行政区划sql(省市区)
数据库·sql·mysql
.NET修仙日记7 小时前
.NET EFCore批量插入性能优化实战:30秒 → 0.5秒
性能优化·c#·.net·.netcore·微软技术·efcore·踩坑实录
阳光九叶草LXGZXJ7 小时前
达梦数据库-学习-52-DmDrs参数介绍(Manager模块)
linux·运维·数据库·sql·学习
网管NO.18 小时前
SQL 是什么?
数据库·sql
Swift社区10 小时前
鸿蒙 PC 性能优化实战:从卡顿到丝滑
华为·性能优化·harmonyos
斜阳日落10 小时前
Qt 框架深度解析与性能优化
qt·性能优化·系统架构
lzhdim10 小时前
C#性能优化技巧
开发语言·性能优化·c#