「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」
一、explain plan for
1 | sql复制代码1、explain plan for &sql_text; |
1 | sql复制代码SQL> set line222 |
_优点:_无需真正执行,方便快捷,与PLSQL工具的F5一样
_缺点:_没有相关统计信息输出;无法判断处理多少行;无法判断表被访问多少次。
二、set autotrace on
1 | sql复制代码1、set autotrace traceonly |
1 | sql复制代码SQL> set autotrace -h |
_优点:_可以输出相关统计信息;可以通过traceonly来控制执行结果是否输出。
_缺点:_必须等到sql语句执行完毕;无法看到表被访问次数。
三、statistics_level=all
1 | sql复制代码两种方式: |
1 | sql复制代码SQL> alter session set statistics_level=all; |
优点:可以通过STRATS得出表被访问次数;可以通过E-Rows和A-Rows来判断预测行数和实际行数是否一致;可以通过Buffers来获取逻辑读数值。
_缺点:_需要sql语句执行完;必须将执行结果输出;看不出物理读数值。
四、dbms_xplan.display_cursor
1 | sql复制代码1、获取sql_id |
1 | sql复制代码--查看AWR和CURSOR中的执行计划 |
_优点:_通过sql_id可以立即获取执行计划,无需执行;可以得到真实执行过的执行计划。
_缺点:_没有输出相关统计信息;无法判断处理行数;无法判断表访问次数。
五、event 10046 trace
1 | sql复制代码1、设置10046事件 |
1 | sql复制代码SQL> alter session set events '10046 trace name context forever,level 12'; |
_优点:_可以查看SQL语句对应等待事件;函数调用的SQL将被列出;可以查看处理行数和物理逻辑读;可以看出解析时间和执行时间;可以跟踪整个程序包;
_缺点:_步骤较为繁琐;无法判断表被访问次数;
六、awrsqrpt.sql
1 | sql复制代码1、@?/rdbms/admin/awrsqrpt.sql |
1 | sql复制代码 |
本文转载自: 掘金