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

相关推荐
jiayong237 小时前
Tomcat性能优化面试题
java·性能优化·tomcat
engchina10 小时前
自然语言转 SQL 并不是“魔法”
数据库·人工智能·sql·text2sql·nl2sql·自然语言转sql
卓码软件测评11 小时前
软件信创测试和软件首版次认定机构【使用Postman的Pre-request Script动态处理数据】
测试工具·ci/cd·性能优化·单元测试·测试用例
BD_Marathon12 小时前
动态SQL(六)foreach标签2
数据库·sql
IT大白12 小时前
1、一条SQL是如何执行的
数据库·sql
独自破碎E13 小时前
MySQL中如何进行SQL调优?
数据库·sql·mysql
一名机电研究生14 小时前
电机驱动系统智能监测与故障预测技术指南:构建数据驱动的预防性维护体系
python·sql·诊断预测
拾起零碎15 小时前
U8/对比一级科目,快速判断需要调整的报表
sql
l1t15 小时前
净化SQL的PL/pgSQL函数
数据库·sql·postgresql
Hello.Reader15 小时前
Flink MongoDB SQL Connector Scan/Lookup/Sink 全打通,Upsert、分片集群与缓存一篇讲透
sql·mongodb·flink