SQL_ID怎麼轉化成HASH_VALUE

yezhibin發表於2009-03-02
$vi i2h.sql

select
lower(trim('&1')) sql_id,
trunc(mod(sum((instr('0123456789abcdfghjkmnpqrstuvwxyz',
substr(lower(trim('&1')),level,1))-1)*power(32,length(
trim('&1'))-level)),power(2,32))) hash_value

from
dual
connect by
level <= length(trim('&1'))
/

SQL>@i2h SQL_ID

來自於tanel Poder的指令碼,主要目的是計算SQL_ID和hash_value之間的關係

實驗驗證:
SQL> select * from dual;
SQL> select sql_id, hash_value from v$sql where sql_text ='select * from dual';

SQL_ID        HASH_VALUE
------------- ----------
a5ks9fhw2v9s1  942515969


SQL> @i2h a5ks9fhw2v9s1

SQL_ID        HASH_VALUE
------------- ----------
a5ks9fhw2v9s1  942515969


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

相關文章