使用PL/SQL执行计划进行sql调优
1、打开工具:pl/sql developer
在pl/sql中写好一个SQL语句,然后按F5打开执行计划分析窗口
2、查看cost,获得消耗资源的总体印象
一般而言,执行计划的第一行所对应的cost值,反应了这段代码的总体成本估计,单看这个没有实际意义,但是拿这个cost和不同计划的执行比较,就可以比对出执行效率的高低。
3、按照从左到右,从上到下的方法,了解执行计划的执行步骤。
4、分析表的访问方式:
表的访问方式有2种:第一种是全表扫描table access full和索引扫描index scan,如果表上存在选择性很好的索引,却走了全表扫描,说明存在问题。
5、分析表的连接方式和连接顺序
表的连接顺序:就是以那张表作为驱动表连接其他表的先后访问顺序。
表的连接方式:简单的说分为三种:嵌套循环、哈希连接和排序-合并连接
网络文本:
我们常见得是嵌套循环和哈希连接。
嵌套循环:最适用也是最简单的连接方式。类似于用两层循环处理两个游标,外层游标称作驱动表,Oracle检索驱动表的数据,一条一条的代入内层游标,查找满足WHERE条件的所有数据,因此内层游标表中可用索引的选择性越好,嵌套循环连接的性能就越高。
哈希连接:先将驱动表的数据按照条件字段以散列的方式放入内存,然后在内存中匹配满足条件的行。哈希连接需要有合适的内存,而且必须在CBO优化模式下,连接两表的WHERE条件有等号的情况下才可以使用。哈希连接在表的数据量较大,表中没有合适的索引可用时比嵌套循环的效率要高。