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

相关推荐
jian110581 天前
android studio Profiler性能优化,查看内存泄漏
android·性能优化·android studio
Getgit1 天前
Linux系统的特点有哪些
java·linux·运维·网络·sql
墨香幽梦客1 天前
系统性能优化技巧:数据库索引、缓存与异步处理的综合应用
数据库·缓存·性能优化
2301_781392521 天前
MySQL格式化数据展示——分页查询
java·数据库·mysql·性能优化
va学弟1 天前
SQL 进阶知识——多表关联与约束
数据库·sql
\xin2 天前
SQL 注入、文件上传绕过、MySQL UDF 提权、SUID 提权、Docker 逃逸,以及 APT 持久化技术渗透测试全流程第二次思路
sql·mysql·docker·容器·渗透测试·json·漏洞
踢足球09292 天前
寒假打卡:2026-01-23
数据库·sql
万粉变现经纪人2 天前
如何解决 pip install pyodbc 报错 缺少 ‘cl.exe’ 或 ‘sql.h’(ODBC 头文件)问题
数据库·python·sql·网络协议·bug·ssl·pip
零零发聊技术2 天前
VBA调用sql语句时不要显示密码
sql·vba