[20221104]执行计划一样Plan hash value不同.txt
--//链接:http://blog.itpub.net/267265/viewspace-2921795/
--//里面遇到一个问题就是执行计划一样Plan hash value不同,我还第一次遇到这个问题.
--//我开始以为自己遇到什么奇怪的问题,但是我最终测试发现这个版本计算的Plan hash value与别的版本计算结果不同.
1.环境:
SYS@192.168.100.235:1521/orcl> @ pr
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 19.0.0.0.0
BANNER : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
BANNER_FULL : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
BANNER_LEGACY : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
2.测试:
select sysdate From dual ;
Plan hash value: 308129442
------------------------------------------------------------------
| Id | Operation | Name | E-Rows | Cost (%CPU)| E-Time |
------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | 2 (100)| |
| 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
------------------------------------------------------------------
--//Plan hash value: 308129442
--//我在其它机器测试,版本11.2.0.4,19.9.0.0.0的环境:
--//ODA,19.9.0.0.0
Plan hash value: 1388734953
------------------------------------------------------------------
| Id | Operation | Name | E-Rows | Cost (%CPU)| E-Time |
------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | 2 (100)| |
| 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
------------------------------------------------------------------
--//我自己的测试机器:
--//11.2.0.4
Plan hash value: 1388734953
------------------------------------------------------------------
| Id | Operation | Name | E-Rows | Cost (%CPU)| E-Time |
------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | 2 (100)| |
| 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
------------------------------------------------------------------
--//18.3C:
Plan hash value: 1388734953
------------------------------------------------------------------
| Id | Operation | Name | E-Rows | Cost (%CPU)| E-Time |
------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | 2 (100)| |
| 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
------------------------------------------------------------------
--//我自己也不知道为什么?也许oracle这个版本改变了Plan hash value计算方法.(19.3.0.0.0)
--//大家遇到这样的问题吗?执行如下
select sysdate From dual ;
--//看到的Plan hash value:是多少.