最近在整理一些SQL改写方面的案例,发现2014年底做的一个优化项目,里面有一个update SQL的改写不是太严谨(对业务来说应该也没有什么影响,因为涉及到改写,也不知道开发人员最终有没有接受这个改写)。今天这篇文章对那个改写做了修正,上万倍的性能提升还是非常值得开发做这个改动。
对于SQL改写来说,改写前后的等价性非常重要,有时你看到的是当前数据情况下的结果集相同,如果换了不同的数据,或者考虑一些极端情况,可能就不相同了。通过比较结果集来判断等价性还不够,最好是有理论依据。网上常见的in/exists改表关联的错误改写,我在之前的某篇文章就纠正过。
某些SQL的写法本身就注定了效率是非常低的,我见过一些标量子查询的SQL,主查询返回较大大结果集,导致SQL执行时间非常长,而且开发人员还使用了较大的并行试图加快速度,殊不知即使加到几百的并行度,也于事无补,这种SQL不但慢,还消耗大量的系统资源,只能改写才能解决。改写后可以从原来的几个小时,缩短到几秒钟。Oracle数据库非常强大,可以接受各种各样的写法,但是如果不按照它的最佳实践来使用,也很难发挥出它应有的效果。
下面这个SQL还好,如果应用还未上线,可以建议按照下面介绍的方法改写一下。如果是生产系统,还有一种优化方法,虽然效率比改写稍微差了那么一点点,还是非常值得操作的,你想到了吗?想到的可留言。
为了能够比较清楚的显示分析过程,文章使用了PPT截图。
内容如有不当之处,敬请指正,感激不尽!
(完)
最后修改时间:2021-03-04 17:10:10
文章转载自老虎刘谈oracle性能优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1321次阅读
2025-04-27 16:53:22
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
797次阅读
2025-04-30 15:24:06
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
536次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
503次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
481次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
369次阅读
2025-04-18 10:01:22
给准备学习国产数据库的朋友几点建议
白鳝的洞穴
352次阅读
2025-05-07 10:06:14
XCOPS广州站:从开源自研之争到AI驱动的下一代数据库架构探索
韩锋频道
317次阅读
2025-04-29 10:35:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
299次阅读
2025-04-28 11:01:25
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
287次阅读
2025-04-23 12:04:21