Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何从plan_表中返回hash_plan_值?_Oracle_Sql Execution Plan - Fatal编程技术网

Oracle 如何从plan_表中返回hash_plan_值?

Oracle 如何从plan_表中返回hash_plan_值?,oracle,sql-execution-plan,Oracle,Sql Execution Plan,我需要从Oracle中的查询计划中自动获取哈希值。 我知道,当我为“我的查询”执行解释计划时,我可以看到它,然后 SELECT PLAN\u TABLE\u OUTPUT FROM TABLE(DBMS\u XPLAN.DISPLAY())显示整个计划 但我的观点是,我在PLAN_表的列中找不到它。 例如,我可以使用PLAN_表中的SELECT COST、CANDARIALITY、BYTES来获得COST、CANDARIALITY和BYTES。有没有办法也获得PLAN_哈希值?我的意思是,既然它

我需要从Oracle中的查询计划中自动获取哈希值。 我知道,当我为“我的查询”执行解释计划时,我可以看到它,然后
SELECT PLAN\u TABLE\u OUTPUT FROM TABLE(DBMS\u XPLAN.DISPLAY())
显示整个计划

但我的观点是,我在PLAN_表的列中找不到它。 例如,我可以使用PLAN_表中的SELECT COST、CANDARIALITY、BYTES来获得COST、CANDARIALITY和BYTES。有没有办法也获得PLAN_哈希值?我的意思是,既然它被展示了,它就在那里,但我不知道在哪里。
我希望我说得够清楚了。

计划哈希存储在计划表行之一的另一个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)
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