说明:此处主要说明步骤,附件有以下各种方法对应的实验过程
1、列计划 explain plan for sql语句——>plan_table======没运行,只查看计划
@?/rdbms/admin/utlxplan 生成plan_table表
explain plan for sql语句 对应sql的执行计划会存到plan_table表中
select ID,PARENT_ID,OPERATION,OBJECT_NAME,COST from plan_table; 从plan_table查看执行计划
@?/rdbms/admin/utlxpls 使用脚本查看sql的执行计划[从内往外看]
2、sql_trace 适合:1、大批量的sql 2、查看内部隐藏的运行的命令
alter session set sql_trace=true; 当前会话
alter session set sql_trace=false;
select sid,serial# from v$session where username='SCOTT';
exec dbms_system.set_sql_trace_in_session(sid,serial#,true) 用sys跟踪别人
对应的会在udump目录下生成spid.trc文件
再通过tkprof命令将spid.trc文件转储为txt文件,我们即可查看
3、autotrace sqlplus的特性
先运行语句完成,才告诉计划
A.通过执行@$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色 B.将 plustrace 角色授予当前用户(无 DBA 角色的用户),
或者grant plustrace to public;
set autot on[结果+计划+统计]
set autot off[关闭执行计划显示]
set autot trace[计划+统计]
set autot trace exp [计划]
set autot trace stat [统计]
4、通过包来查看已经运行的执行计划
select sql_id,sql_text from v$sqlarea;
select plan_table_output from table(dbms_xplan.DISPLAY_CURSOR('sql_id'))
5、PL/SQL客户端中F5可以查看执行计划
详情见附件的实验过程...........
附件:http://space.itpub.net/?uid-27000195-action-viewspace-itemid-740026
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27000195/viewspace-740025/ ,如需转载,请注明出处,否则将追究法律责任。