日期:2014-05-16  浏览次数:20409 次

如何查看oracle执行计划

1??????查看Oracle执行计划的几种方法

1.1??????通过PL/SQL Dev工具

1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%Cardinality表示执行的行数,等价Rows

?2、先执行?explain plan for ?select * from dual,再?select * from table(dbms_xplan.display)便可以看到oracle的执行计划了,看到的结果和1中的一样,所以使用工具的时候推荐使用1方法。

注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候我们需要sqlplus的支持。

1.2??????通过sqlplus

1.最简单的办法

Sql> set autotrace on

Sql> select * from dual;

  执行完语句后,会显示explain plan?与统计信息。

  这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。如果不想执行语句而只是想得到执行计划可以采用:

Sql> set autotrace traceonly

这样,就只会列出执行计划,而不会真正的执行语句,大大减少了优化时间。虽然也列出了统计信息,但是因为没有执行语句,所以该统计信息没有用处,如果执行该语句时遇到错误,解决方法为:

(1)在要分析的用户下:

Sqlplus > @?\rdbms\admin\utlxplan.sq

(2)?sys用户登陆

Sqlplus > @ ?sqlplus\admin\plustrce.sql

Sqlplus > grant plustrace to user_name;