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

相关推荐
谢尔登1 小时前
原来Webpack在大厂中这样进行性能优化!
前端·webpack·性能优化
q***78374 小时前
SQL实现md5加密方法
数据库·sql
红树林074 小时前
渗透测试之sql注入--报错注入
数据库·sql·安全·web安全
c***42105 小时前
【Sql Server】随机查询一条表记录,并重重温回顾下自定义函数的封装和使用
数据库·性能优化
Appreciate(欣赏)5 小时前
JAVA使用poi类读取xlxs文件内容拼接成添加数据SQL
java·开发语言·sql
q***23575 小时前
python的sql解析库-sqlparse
数据库·python·sql
q***92516 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
TDengine (老段)8 小时前
MySQL/PG/TDengine 时间范围 SQL 表达式
sql·mysql·tdengine
q***71018 小时前
SQL注入(SQL Injection)攻击原理与防御措施
数据库·sql·oracle
f***R89 小时前
解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
java·数据库·sql