autotrace 貌似有点bug,推荐用explain for:
要使用EXPLAIN首先要执行相应的脚本,创建出Explain_plan表。
具体脚本执行如下:
$ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) 该脚本后会生成一个表这个程序会创建一个名为plan_table的表。
常规使用语法:
explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ] FOR < sql_statement > |
其中:
STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。
TABLE_NAME:是plan表名,它结构如前所示,你可以任意设定这个名称。
SQL_STATEMENT:是真正的SQL语句。 比如: SQL>explain plan set statement_id='T_TEST' for select * from t_test; SQL> Explained
执行下面语句可以查询到执行计划
SQL>SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID 2 FROM PLAN_TABLE a 3 WHERE STATEMENT_ID='T_TEST' 4 ORDER BY Id; |
也可以用这句话 select * from table(dbms_xplan.display); 可以把所有PLAN_TABLE里的数据罗列出来。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8432937/viewspace-1029416/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8432937/viewspace-1029416/