ITPub博客

首页 > 数据库 > Oracle > SQL执行计划查看方法

SQL执行计划查看方法

原创 Oracle 作者:james210 时间:2019-11-19 18:06:07 0 删除 编辑

六种常用的sql执行计划查看

explain play      DBMS_XPLAN包    sqlplus 中set autot    10046     10053     awr或者statspack报告


一、explain play 

PL/SQL中的F5键

explain plan for  sql语句

select * from table(dbms_xplan.display)


explain plan for 后将执行计划写入了plan_table$中, select * from table(dbms_xplan.display)就是将具体的步骤以格式化的形式写出来


二、dbms_xplan包

select * from table(dbms_xplan.display)   执行完 explain plan for  sql语句 后可以用这个直接查询


 select * from table(dbms_xplan.display_cursor(null,null,'advanced'));  执行完某sql ,可以紧接着执行这条来查看执行计划


select * from table(dbms_xplan.display_cursor('sql_id/hash_value',child_cursor_number,'advanced')); 查看指定 sql_id/hash_value的执行计划


select * from table(dbms_xplan.display_awr('sql_id')); 查看指定sql_id的历史执行计划,前面2和3需要执行计划还是share pool里,才能采集到,如果已经清空或者age out 出了share pool,则只能通过这个方法,从awr  repository中得到执行计划


三、set autot 

set autot on

set autot trace

set autot trace exp

set autot trace stat

set autot off


四、10046与tkprof

与上面三种相比,10046明确了sql实际执行计划中每一步的逻辑读,物理读和花费的时间

步骤

1、激活10046事件  alter session set events '10046 trace name context forever,level 12'; 或oradebug event 10046 trace name context forever,level 12; 

2、执行sql 

3、关闭10046事件 alter session set events '10046 trace name context off'  或 oradebug event 10046 trace name context off; 


上面四种办法的前三种,得出的执行计划有可能是不准的


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26031282/viewspace-2664853/,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 表连接
请登录后发表评论 登录
全部评论

注册时间:2011-11-07

  • 博文量
    17
  • 访问量
    12087