[20221104]执行计划一样Plan hash value不同.txt

[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:是多少.

请使用浏览器的分享功能分享到微信等