如何从PLAN_TABLEreturnhash_plan_value?
How to return hash_plan_value from PLAN_TABLE?
我需要从 Oracle 中的查询计划自动获取 hash_plan_value。
我知道当我执行 EXPLAIN PLAN for "My Query" 然后我可以看到它
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY())
向我展示了整个计划。
但我的观点是我没有在 PLAN_TABLE 的列中找到它。
例如,我可以使用 SELECT COST,CARDINALITY, BYTES FROM PLAN_TABLE 获得 COST、CARDINALITY 和 BYTES 有没有办法获得 PLAN_HASH_VALUE?我的意思是因为它显示了它就在那里,但我不知道在哪里。
我希望我已经足够清楚了..
计划哈希存储在 PLAN_TABLE 行之一的 OTHER_XML 列中。
示例计划
explain plan set statement_id = 'TEST3' for select * from dual connect by level <= 10;
select * from table(dbms_xplan.display);
Plan hash value: 2874664061
-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
|* 1 | CONNECT BY WITHOUT FILTERING| | | | | |
| 2 | TABLE ACCESS FULL | DUAL | 1 | 2 | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(LEVEL<=10)
要提取的查询 PLAN_HASH
select extractValue(xmltype(other_xml), '/other_xml/info[@type="plan_hash"]') plan_hash
from plan_table
where other_xml is not null
and statement_id = 'TEST3';
PLAN_HASH
---------
2874664061
我需要从 Oracle 中的查询计划自动获取 hash_plan_value。
我知道当我执行 EXPLAIN PLAN for "My Query" 然后我可以看到它
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY())
向我展示了整个计划。
但我的观点是我没有在 PLAN_TABLE 的列中找到它。 例如,我可以使用 SELECT COST,CARDINALITY, BYTES FROM PLAN_TABLE 获得 COST、CARDINALITY 和 BYTES 有没有办法获得 PLAN_HASH_VALUE?我的意思是因为它显示了它就在那里,但我不知道在哪里。 我希望我已经足够清楚了..
计划哈希存储在 PLAN_TABLE 行之一的 OTHER_XML 列中。
示例计划
explain plan set statement_id = 'TEST3' for select * from dual connect by level <= 10;
select * from table(dbms_xplan.display);
Plan hash value: 2874664061
-------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
|* 1 | CONNECT BY WITHOUT FILTERING| | | | | |
| 2 | TABLE ACCESS FULL | DUAL | 1 | 2 | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(LEVEL<=10)
要提取的查询 PLAN_HASH
select extractValue(xmltype(other_xml), '/other_xml/info[@type="plan_hash"]') plan_hash
from plan_table
where other_xml is not null
and statement_id = 'TEST3';
PLAN_HASH
---------
2874664061