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

相关推荐
小二·2 小时前
Vue 前端性能优化终极指南:Lighthouse 100 分实战(Vue 3 + Vite)
前端·vue.js·性能优化
LYFlied2 小时前
深入解析服务端渲染(SSR):从原理到实践
前端·性能优化
德彪稳坐倒骑驴3 小时前
Hive SQL常遗忘的命令
hive·hadoop·sql
山峰哥3 小时前
3000字深度解析:SQL调优如何让数据库查询效率提升10倍
java·服务器·数据库·sql·性能优化·编辑器
b***59433 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql
Facechat3 小时前
视频混剪-性能优化
性能优化·音视频
卓码软件测评3 小时前
CMA-CNAS软件测评报告机构【Apifox动态Mock响应处理复杂业务逻辑设计】
测试工具·性能优化·单元测试·测试用例
l1t4 小时前
格式化SQL工具pg_prettify
数据库·sql
·云扬·4 小时前
MySQL四大系统库详解:作用、核心表与实用SQL查询
android·sql·mysql
奔波霸的伶俐虫4 小时前
redisTemplate.opsForList()里面方法怎么用
java·开发语言·数据库·python·sql