Oracle基础:sql执行计划分析(2)

第二讲:pl/sql工具查看执行计划

 

 1. 使用pl/sql工具查看执行计划很简单;写完sql,按一下F5即可

Oracle基础:sql执行计划分析(2)_第1张图片

  注意:

  1.和sqlplus相比,该工具的执行计划少了 统计部分,只列出部分统计信息

  2.和sqlplus相比,该工具的执行计划只是对要执行的sql进行预编译统计,不是真正的执行;所以,统计数据不如sqlplus准确.

  3.该工具对你查看sql 执行时,了解oracle会选择什么样的优化器 比较快捷.

  4.通过该工具查看sql执行时间是不准确的,因为它每次查询  不是显示表的全部数据条数,而是只列出屏幕能显示的数据条数;

     只有点“显示全部条数”时,才是真正的执行时间。

 

2. 双表之间的执行计划

  Oracle基础:sql执行计划分析(2)_第2张图片

 

3.pl/sql 工具其实也可以查看sql执行计划的统计情况,需要依赖dbms_xplan 包才可以.

 Oracle基础:sql执行计划分析(2)_第3张图片

 Oracle基础:sql执行计划分析(2)_第4张图片

 说明:

1. 第10行的"*",代表hash join 时,有过滤条件; 及 第18行的条件.

2. 第20行,有2个note说明:讲的意思是, 因为t、t2 表的数据没有经过oracle自身自动的统计分析,所以本次查询,使用的是

             简单动态查询;如果使用带统计的查询,需要使用“gather_plan_statistics” hint. 

 

  带“gather_plan_statistics” hint 的执行计划如下:

Oracle基础:sql执行计划分析(2)_第5张图片

   说明:1.未使用统计时,T表的Rows =1,统计后是198(准确数也是198); 2者差别比较大;这就说明,统计后的执行计划比较准确.

         2.Bytes 15642 是逻辑读

         3.和在sqlplus里面的执行计划比较一下,是一致的

Oracle基础:sql执行计划分析(2)_第6张图片

 

 

你可能感兴趣的:(oracle基础)