我正在尝试理解Oracle plan_table并运行一些SQL语句来填充plan_table ...从plan_table中生成的语句中,我如何识别语句的执行顺序。
答案 0 :(得分: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
检索内容:
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;
以上摘自:http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9010.htm#sthref5965
您需要将'xxxx'
替换为您正在使用的statement_id(在set statement_id
语句中需要explain plan
)