[20221104]執行計劃一樣Plan hash value不同.txt

lfree發表於2022-11-07

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2922082/,如需轉載,請註明出處,否則將追究法律責任。

相關文章