加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何查询oracle执行计划_总结

发布时间:2020-12-12 15:48:03 所属栏目:百科 来源:网络整理
导读:第一种:explainplan命令(plsqldevoloper中的F5键在内部也是调用的此命令) 用法:依次执行以下语句 explainplanfor 目标SQL select*fromtable(dbms_xplan.display); 第二种:使用dbms_xplan包 (1)select*fromtable(dbms_xplan.display); 与explainplan命

第一种:explainplan命令(plsqldevoloper中的F5键在内部也是调用的此命令)

用法:依次执行以下语句

explainplanfor目标SQL

select*fromtable(dbms_xplan.display);

第二种:使用dbms_xplan包

(1)select*fromtable(dbms_xplan.display);

与explainplan命令配合使用

(2)select*fromtable(dbms_xplan.display_cursor(null,null,'advanced'));

在sqlplus中查看刚刚执行

(3)select*fromtable(dbms_xplan.display_cursor('sql_id/hash_value',child_cursor_number,'advanced'));

查看指定SQL的执行计划

(4)select*fromtable(dbms_xplan.display_awr('sql_id'));

用于查看指定SQL的所有历史执行计划

第三种:SQLPLUS中的autotrace开关

SETAUTOTRACEOFF(默认值)(等价于SETAUTOTOFF)

SETAUTOTRACEON(等价于SETAUTOTON)

SETAUTOTRACETRACEONLY(不显示执行SQL的结果)(等价于SETAUTOTTRACE)

SETAUTOTRACETRACEONLYEXPLAIN(只显示SQL执行计划)(等价于SETAUTOTTRACEEXP)

SETAUTOTRACETRACEONLYSTATISTICS(只显示SQL资源消耗量)(等价于SETAUTOTTRACESTAT)

第四种:10046事件

查看目标sql执行计划的一种方法,和上面三种方法的不同之处在于,此方法得到的执行计划明确显示了目标SQL实际执行计划中每一步骤所消耗的逻辑读、物理读和花费的时间。

使用以下三个步骤来执行10046事件:

(1)首先在当前session中激活10046事件

(2)在此session中执行目标sql

(3)在此session中关闭10046事件

上面步骤执行完后,相关数据写入trace文件中

trace文件存放于USER_DUMP_DEST中

trace文件的格式为“实例名_ora_当前session的spid.trc”

激活10046的方法,一般有以下两种:

--altersessionsetevents'10046tracenamecontextforever,level12'

--oradebugevent10046tracenamecontextforever,level12

推荐使用oradebug方式,此方式可以在激活10046事件后oradebugtracefile_name来得到trc文件的目录和名称

关闭10046事件的方法为:

--altersessionsetevents'10046tracenamecontextoff'

--oradebugevent10046tracenamecontextoff

需要使用tkprof来格式化trc文件(tkprof命令位于$ORACLE_HOME/BIN目录下)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读