0
我在尝试了解Oracle的plan_table并运行几条SQL语句来填充plan_table ...从plan_table中生成的语句中,如何确定语句的顺序执行。Oracle:解释plan_table查询执行顺序
我在尝试了解Oracle的plan_table并运行几条SQL语句来填充plan_table ...从plan_table中生成的语句中,如何确定语句的顺序执行。Oracle:解释plan_table查询执行顺序
直接从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
)
反正在Ubuntu安装Oracle的statement_id? –
是的,但您也可以下载预装在Oracle Linux上的VirtualBox的VM映像。 –
@ArupRakshit:我失败了,所以看到这与我的答案有关。如果你有一个具体的问题,那就创建一个新的问题(可能在http://dba.stackexchange.com/上更好) –