2013-09-22 114 views

回答

5

直接从PLAN_TABLE选择是有点 “过时”。至少现在绝对没有必要。您可以使用dbms_xplan查看的解释语句的执行计划:

explain plan for 
select * 
from your_table;; 

select * 
from table(dbms_xplan.display); 

更多细节的手册中:http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_xplan.htm#CACICEDJ

该手册还包含一个示例(分层)SELECT语句从PLAN_TABLE检索内容直接:http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9010.htm#sthref5965

SELECT id, LPAD(' ',2*(LEVEL-1))||operation operation, options, 
    object_name, object_alias, qblock_name, position 
FROM plan_table 
START WITH id = 0 AND statement_id = 'xxxxx' 
CONNECT BY PRIOR id = parent_id AND statement_id = 'xxxxx' 
ORDER BY id; 

上面摘自

您需要更换'xxxx'与正在使用(这需要在explain plan语句set statement_id

+0

反正在Ubuntu安装Oracle的statement_id? –

+0

是的,但您也可以下载预装在Oracle Linux上的VirtualBox的VM映像。 –

+1

@ArupRakshit:我失败了​​,所以看到这与我的答案有关。如果你有一个具体的问题,那就创建一个新的问题(可能在http://dba.stackexchange.com/上更好) –