wushuangyan26 发表于 2013-1-29 15:21:38

查看sql执行计划方式

      查看oracle的sql执行计划主要有以下几种方式
 
1         在线查看执行计划

1.1        explain plan for

1.1.1       规则

 

      在sql窗口或sql*plus终端
       1、首先执行explain plan for [目标sql语句] ;取得计划解释
      2、然后通过DBMS_XPLAN.DISPLAY方法生成计划详情输出:
      select * from table(DBMS_XPLAN.DISPLAY);或
      select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
 
 

1.1.2       举例

 

       explain plan for select count(1) from dual;
      select * from table(DBMS_XPLAN.DISPLAY);或
      select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
      输出如下所示:
  
http://dl.iteye.com/upload/attachment/605351/31dbabc4-0b17-3519-af86-2684bb8cc11b.png
 
   
2         使用oracle第三方工具

2.1        plsql developer

2.1.1      规则

 

       在sql窗口,选定[目标sql语句],按F5快捷键直接会跳到Explain Plan Window或直接File->New->Explain Plan Window,在窗口中输入[目标sql语句],就可以查看计划结果,
其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows
 

2.1.2       举例

        File->New->Explain Plan Window,输入
    select * from dual,F10输出如下所示:
   
http://dl.iteye.com/upload/attachment/605356/0135601a-cf00-3c50-a7d4-75f8db662ddd.png
 
 
2.2  toad

2.2.1       规则

 

     在toad的Edits窗口,选定[目标sql语句], (Ctrl+E)快捷键或点击,即可在下方输出执行计划详情。
 
2.2.2       举例


http://dl.iteye.com/upload/attachment/605358/ba1e0872-1a6c-3708-a9ed-a1efe48b0d12.png
 
 
3         SQL*PLUS



     在sql*plus命令行终端(PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候可能需要sqlplus的支持)中,除了支持explain plan for的那种方式外,还支持以set autotrace on的方式进行较详细的计划及统计信息输出。
      注意:
       1、如果PLAN_TABLE表不存在:
      执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
       2、如果PLUSTRACE角色不存在,
      执行$ORACLE_HOME/sqlplus/admin/plustrce.sql


3.1        规则



  1、执行set autotrace on; 生成AUTOTRACE 报告
  2、然后执行[目标sql语句],当完成后会把结果及执行计划、统计信息等自动显示出来。
   
      关于Autotrace几个常用选项附加说明:
       1、SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
       2、SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
      3、SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
      4、SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
      5、SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询


3.2        举例

      登陆sqlplus终端连接指定数据库后,依次执行以下:
       set autotrace on;
      select * from dual;
      
http://dl.iteye.com/upload/attachment/605360/7f68a94f-fcfb-36f9-b52a-e5ce075a9c1f.png
 
页: [1]
查看完整版本: 查看sql执行计划方式