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

相关推荐
weixin_431600444 小时前
NestJS 入门(9):连上数据库,SQL 写在哪?
数据库·后端·sql·学习·nest.js
roman_日积跬步-终至千里4 小时前
【Spark与SQL网关(1)】Spark 提交模式与 Spark Thrift Server:到底在“提交”什么
大数据·sql·spark
01_ice5 小时前
MySQL表的约束
数据库·sql·mysql
AlfredZhao5 小时前
SQL JOIN 写法:把多表关联条件写清楚
sql
爱喝水的鱼丶14 小时前
SAP-ABAP:BAPI 基础认知:SAP 标准业务对象接口的核心逻辑与调用入门
信息可视化·性能优化·sap·abap·bapi·开发交流·交流学习
Full Stack Developme18 小时前
SQL 注入 的历史及设计工作原理
数据库·sql
阿坤带你走近大数据19 小时前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据19 小时前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
茶本无香20 小时前
Java调用Shell脚本执行SQL数据库操作:从入门到实战
java·sql·shell
浅念-21 小时前
MySQL CRUD | 增删改查知识点总结
数据库·sql·mysql·oracle