SQL执行计划查看方法

来源:这里教程网 时间:2026-03-03 14:33:38 作者:

六种常用的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 onset autot traceset autot trace expset autot trace statset 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;  上面四种办法的前三种,得出的执行计划有可能是不准的

相关推荐