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

相关推荐
远离UE46 小时前
UE5 硬件性能优化
性能优化
欧阳天羲15 小时前
前端性能优化实战:从白屏到秒开
前端·性能优化
抓蛙师16 小时前
多租户 tenant_id SQL 注入漏洞分析与应急响应报告
数据库·sql
何以解忧,唯有..19 小时前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
张宇Joaquin1 天前
高性能模板库Eigen架构分析及性能优化实践
性能优化·架构
AI服务老曹1 天前
视觉算法模型管理性能优化指南:多版本平滑升级、灰度与快速回滚实战
算法·性能优化
西安景驰电子1 天前
《PTP精确时间协议系列》第二篇:工程部署、调试与性能优化
运维·服务器·网络·数据库·windows·性能优化
执子念的飞鱼1 天前
70MB Excel 浏览器预览失败:定位 XLSX 重复解压与内存峰值
javascript·性能优化
今天AI了吗1 天前
Agent & AI 名词大扫盲
数据库·人工智能·python·sql·rust