-
PL/SQL 选择目标语句按F5 查看执行计划
-
explain plan
explain plan for + 目标SQL
select * from table(dbms_xpla.display);
select * from table(dbms_xpla.display_cursor(null,null,‘advanced’));
select * from table(dbms_xpla.display_cursor(‘sql_id/hash_value’,child_cursor_number,‘advanced’));
select * from table(dbms_xpla.display_awr(‘sql_id’)); -
autotrace
(1)在sqlplus当前的session中执行命令set autotrace on,之后执行的所有sql除了显示执行结果还显示执行计划
(2)在sqlplus当前的session中执行命令set autotrace traceonly,相对(1),只会显示执行结果的数量,而不会显示执行结果的具体内容,使用执行结果内容特别长,不关心执行结果只关心执行计划和资源消耗
(3)在sqlplus当前的session中执行命令set autotrace traceonly,只显示执行计划
(4)在sqlplus当前的session中执行命令set autotrace traceonly statistics,不显示执行计划,只显示执行结果的数量和资源消耗量
set autotrace on 简写 set autot on
set autotrace off 简写 set autot off
set autotrace traceonly 简写 set autot trace
set autotrace traceonly explain 简写 set autot trace exp
set autotrace traceonly statistics 简写 set autot trace stat -
10046事件与tkprof命令
得到的执行计划显示了目标SQL执行计划中每一个执行步骤所消耗的逻辑度,物理读和花费时间
会在参数USER_DUMP_DEST的目录下生成trace文件,命名格式‘实例名_ora_当前session的spid.trc’
(1)在当前session激活10046事件
alter session set events ‘10046 trace name context forever,level 12’
or
oradebug event 10046 trace name context forever,level 12
(2)在session中执行目标SQL
查看trace的文件
sql>oradebug tracefile_name
(3)关闭10046事件
alter session set events ‘10046 trace name context off’
or
oradebug event 10046 trace name context off
tkprof命令
tkprof 原文件名 新文件名
5.获取真实的执行计划
(1)先执行sql语句
(2)select * from table(dbms_xplan.display_cursor(NULL,NULL,‘typical +ALLSTATS LAST PEEKED_BINDS’));
- sql monitor
准确显示各个步骤的实际执行效果




