Oracle 执行计划查看

第一种:explain plan命令(plsql devoloper中的F5键在内部也是调用的此命令)
用法:依次执行以下语句
explain plan for 目标SQL
select * from table(dbms_xplan.display);

第二种:使用dbms_xplan包

(1)select * from table(dbms_xplan.display);
与explain plan命令配合使用
(2)select * from table(dbms_xplan.display_cursor(null,null,'advanced'));
在sqlplus中查看刚刚执行
(3)select * from table(dbms_xplan.display_cursor('sql_id/hash_value',child_cursor_number,'advanced'));
查看指定SQL的执行计划
(4)select * from table(dbms_xplan.display_awr('sql_id'));
用于查看指定SQL的所有历史执行计划

第三种:SQLPLUS中的autotrace开关
SET AUTOTRACE OFF(默认值)(等价于SET AUTOT OFF)
SET AUTOTRACE ON(等价于SET AUTOT ON)
SET AUTOTRACE TRACEONLY(不显示执行SQL的结果)(等价于SET AUTOT TRACE)
SET AUTOTRACE TRACEONLY EXPLAIN(只显示SQL执行计划)(等价于SET AUTOT TRACE EXP)
SET AUTOTRACE TRACEONLY STATISTICS(只显示SQL资源消耗量)(等价于SET AUTOT TRACE STAT)

第四种:10046事件
查看目标sql执行计划的一种方法,和上面三种方法的不同之处在于,此方法得到的执行计划明确显示了目标SQL实际执行计划中每一步骤所消耗的逻辑读、物理读和花费的时间。
使用以下三个步骤来执行10046事件:
(1)首先在当前session中激活10046事件
(2)在此session中执行目标sql
(3)在此session中关闭10046事件
上面步骤执行完后,相关数据写入trace文件中
trace文件存放于USER_DUMP_DEST中
trace文件的格式为“实例名_ora_当前session的spid.trc”
激活10046的方法,一般有以下两种:
--alter session set events '10046 trace name context forever,level 12'
--oradebug event 10046 trace name context forever,level 12
推荐使用oradebug方式,此方式可以在激活10046事件后oradebug tracefile_name来得到trc文件的目录和名称
关闭10046事件的方法为:
--alter session set events '10046 trace name context off'
--oradebug event 10046 trace name context off
需要使用tkprof来格式化trc文件(tkprof命令位于$ORACLE_HOME/BIN目录下)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值