如何快速找到 ORACLE 数据库 SQL 的效率瓶颈 优化三步曲

SQL 是的 Structured Query Language 的简称。是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。



无论是软件开发,还是数据处理,SQL 的执行效率都应该是值得关注的。同样的逻辑,不同的写法,有时可以秒出结果,而有时却只能让你等待。

SQL 执行效率取决于很多因素。表中数据量的大小、关联表的多少、是否存在索引等,都对运行速度起到了决定性影响。一般来说,需要优化的 SQL 通常情况下都是非常的臃肿,看上去真的是无从下手。Geeker Xu 今天就给您一个快速判断 SQL 效率的三步曲,这些也是我在工作中总结归纳

经验,希望可以帮助到一些遇到相同问题的人。

第一步,无脑运行

将 SQL 中的每一段“子查询”、“子表” 都分别运行,记录执行时间已经数据行数。

调整方式:将行数少的结果集尽量放到靠后面的位置。

原理:ORACLE 执行顺序是自下而上,由少至多的执行方式会提高 ORACLE 的解析效率。

第二步,逐步增加关联表,查看每增加一个关联,执行效率是否会被影响。

调整方式:将执行效率低的关联关系找到,并增加索引。

原理:索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,有效的索引可以提高查询效率。

第三步,查看有无重复出现或重复调用的“子查询 ”

调整方式:将重复出现的“子查询 ”进行提取,使用 WITH 语句进行处理。

原理:ORACLE 中的 WITH 语法可以将执行结果集临时存放在内存中,这样可以不重复读取数据库,从而达到提升效率的效果。

通过以上三步曲,基本上可以解决大部分执行效率问题。如果有朋友有更多简单有效的优化方式,也可以说明。

Geeker Xu wechat
欢迎您扫一扫上面的微信公众号,订阅我的公众号
坚持原创技术分享,您的支持将鼓励我继续创作!