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

相关推荐
CCPC不拿奖不改名30 分钟前
SQL基础(SQL小白教程):MySQL语句+环境一键搭建+面试习题
数据库·sql·计算机网络·mysql·oracle·面试·职场和发展
张彦峰ZYF4 小时前
探索数据的力量:Elasticsearch中指定链表字段的统计查询记录
搜索引擎·性能优化·es
Davina_yu4 小时前
2026年节假日表SQL
数据库·sql
码农小卡拉5 小时前
数据库:主键 VS 唯一索引 区别详解
java·数据库·sql
e***98575 小时前
Java性能优化实战:从原理到案例
java·开发语言·性能优化
航Hang*6 小时前
第3章:复习篇——第1节:创建和管理数据库---题库
数据库·笔记·sql·学习·期末·复习
闲人不梦卿7 小时前
数据库安全和事务以及sql
数据库·sql
小蜗的房子7 小时前
Oracle 19C RAC Public IP单网卡改为bond模式操作指南
运维·网络·数据库·sql·tcp/ip·oracle·oracle rac
么么...8 小时前
MySQL 存储引擎与索引深度解析:从原理到优化实践
数据库·经验分享·sql·mysql
さかた ぎんとき889 小时前
从SQL到磁盘的Mysql全链路解析
数据库·sql·mysql