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

相关推荐
NaMM CHIN4 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
不瘦80斤不改名4 小时前
深入浅出 MySQL(一):一文理清 SQL 核心规范与五大分类
数据库·sql·mysql
看海的四叔6 小时前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
eEKI DAND7 小时前
SQL美化器:sql-beautify安装与配置完全指南
数据库·sql
cwxcc8 小时前
Google Core Web Vitals(核心网页指标)
前端·性能优化
花椒技术9 小时前
从7S到4S,我们如何系统性降低直播播放延迟
性能优化·程序员
cyber_两只龙宝10 小时前
【Oracle】Oracle之SQL的转换函数和条件表达式
linux·运维·数据库·sql·云原生·oracle
uElY ITER11 小时前
VS与SQL Sever(C语言操作数据库)
c语言·数据库·sql
SHoM SSER11 小时前
SQL之CASE WHEN用法详解
数据库·python·sql
cyber_两只龙宝11 小时前
【Oracle】Oracle之SQL的聚合函数和分组
linux·运维·数据库·sql·云原生·oracle