oracle如何查看执行计划

2025-11-09 12:23:52

1、打开Oracle Database软件后进入软件数据库主界面,在PL/SQL下按F5查看执行计划,在这里面可以看到基数、优化器、耗费等基本信息 如图

oracle如何查看执行计划

2、在SQL*PLUS,PL/SQL的命令窗口下执行下面步骤 :

SQL>EXPLAIN PLAN FOR 

SELECT * FROM SCOTT.EMP; --要解析的SQL脚本 

SQL>SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 

如图

oracle如何查看执行计划

3、完成以上步骤后还需要在SQL*PLUS下输入代码执行命令:

SQL>SET TIMING ON             --控制显示执行时间统计数据 SQL>SET AUTOTRACE ON EXPLAIN       --这样设置包含执行计划、脚本数据输出,没有统计信息 

如图

oracle如何查看执行计划

4、接着我们输入第二段代码:

SQL>执行需要查看执行计划的SQL语句 SQL>SET AUTOTRACE OFF           --不生成AUTOTRACE报告,这是缺省模式 

oracle如何查看执行计划

5、然后是第三段

SQL> SET AUTOTRACE ON           --这样设置包含执行计划、统计信息、以及脚本数据输出 SQL>执行需要查看执行计划的SQL语句 SQL>SET AUTOTRACE OFF 

oracle如何查看执行计划

6、第四段代码:

SQL> SET AUTOTRACE TRACEONLY      --这样设置会有执行计划、统计信息,不会有脚本数据输出 

oracle如何查看执行计划

7、最后输入第5段代码:

SQL>执行需要查看执行计划的SQL语句 SQL>SET AUTOTRACE TRACEONLY STAT --这样设置只包含有统计信息 SQL>执行需要查看执行计划的SQL语句 

oracle如何查看执行计划

8、需要注意的是:在Oracle Database中,PL/SQL Developer 工具并不完全支持所有的SQL*Plus命令,如果执行“SET AUTOTRACE ON”命令就会报错,出现接下来的情况:

SQL> SET AUTOTRACE ON;

Cannot SET AUTOTRAC

oracle如何查看执行计划

9、PL/SQL DEVELOPER工具里面执行上面脚本过后,我们是看不到相关信息的,这时我们可以通过输入脚本代码查询执行过的信息,代码如下:

SELECT T.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' || P.SPID || '.trc' TRACE_FILE_NAME FROM ( SELECT P.SPID FROM V$MYSTAT M, V$SESSION S, V$PROCESS P WHERE M.STATISTIC# =1 AND S.SID = M.SID AND P.ADDR = S.PADDR ) P, ( SELECT T.INSTANCE FROM V$THREAD T, V$PARAMETER V WHERE V.NAME ='thread' AND (V.VALUE = 0 OR T.THREAD# = TO_NUMBER(V.VALUE)) ) I, (SELECT VALUE FROM V$PARAMETER WHERE NAME='user_dump_dest') T 

如图所示:

oracle如何查看执行计划

10、我们通过Oracle Database,查看执行计划后,通常要以文本的形式保存下来,可以输入命令:tkprof D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\TRACE/wgods_ora_3940.trc h:\out.txtoutputfile explain=etl/etl 执行 如图

oracle如何查看执行计划

11、执行上面命令后,就可以查看生成的文本文件了如图

oracle如何查看执行计划

12、以上就是如何用Oracle Database,查看执行计划的步骤,需要注意的是PL/SQL Developer 工具并不完全支持所有的SQL*Plus命令,执行SET AUTOTRACE ON 就如此,在PL/SQL Developer工具下执行此命令会报错。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢