[20191012]使用bash從sql_id計算hash_value.txt
[20191012]使用bash從sql_id計算hash_value.txt
--//沒有什麼實際意義,僅僅驗證方法是否可行.
--//sql_id的計算是使用MD5演算法進行雜湊,生成一個128位的Hash Value,其中低32位作為HASH VALUE顯示,SQL_ID則取了後64位。
--//實際上sql_id使用32進製表示,hash_value使用10進製表示。
1.測試資料:
select * from emp where deptno=10;
--//查詢可以知道sql_id='557p4j1ggw222'.
SCOTT@book> select sql_text c70,sql_id,hash_value from v$sql where sql_id = '557p4j1ggw222';
C70 SQL_ID HASH_VALUE
---------------------------------- ------------- ----------
select * from emp where deptno=10 557p4j1ggw222 1593706562
SCOTT@test01p> select /*+ 12345678abdef */ sysdate from dual ;
SYSDATE
-------------------
2019-10-11 22:34:56
---//sql_id=0p0rzks2gkrj6
SCOTT@test01p> select name c70,hash_value,full_hash_value from V$DB_OBJECT_CACHE where hash_value=83451430;
C70 HASH_VALUE FULL_HASH_VALUE
--------------------------------------------- ---------- --------------------------------
select /*+ 12345678abdef */ sysdate from dual 83451430 ef5a2c4876c9e93d0a82ff9604f95e26
select /*+ 12345678abdef */ sysdate from dual 83451430 ef5a2c4876c9e93d0a82ff9604f95e26
--//sql_id = 557p4j1ggw222 ,HASH_VALUE = 1593706562
--//sql_id = 0p0rzks2gkrj6 ,HASH_VALUE = 83451430
2.測試:
$ echo 557p4j1ggw222 0p0rzks2gkrj6 | xargs.exe -n 1 ./s2p.sh
sql_id=557p4j1ggw222 hash_value = 1593706562
sql_id=0p0rzks2gkrj6 hash_value = 83451430
--//對比上面都能對上.
3.執行指令碼s2p如下:
$ cat s2p.sh
#! /bin/bash
# convert sql_id to hash_value
odebug=${ODEBUG:-0}
sql_id="$*"
v1=$(echo $sql_id | tr $(echo {0..9} {a..z} | tr -d 'eilo ') $( echo {0..9} {a..v}| tr -d ' '))
v2=$(( 32#$v1 % 2**32 ))
if [ $odebug -eq 1 ] ; then
echo "sql_id=$sql_id v1=$v1 v2=$v2"
fi
echo "sql_id=$sql_id hash_value = $v2"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2659789/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20200211]使用DBMS_SHARED_POOL.MARKHOT與sql_id的計算.txtSQL
- [20220104]檔案格式與sql_id計算.txtSQL
- [20190929]bash使用bc計算的相關問題.txt
- [20191010]bash行計算器.txt
- [20210119]看執行計劃可以使用hash_value.txt
- [20220111]該語句的sql_id如何計算的.txtSQL
- [20211009]使用bash計算sql語句的sql_id.txtSQL
- [20230428]bash實現xor計算.txt
- №20191012◆手遊1~8◆
- [20191012]組成rowid.txt
- [20181229]bash shell的算術運算 .txt
- 從雲端計算轉向邊緣計算
- [20191011]通過bash計算sql語句的sql_id.txtSQL
- [20201109]bash shell特殊算術方式.txt
- 從雲端計算到函式計算函式
- Linux Bash程式設計Linux程式設計
- Oracle檢視sql_id 的歷史執行計劃OracleSQL
- 從計算到智算,計算產業掀起什麼樣的浪潮?產業
- 在 bash 中使用函式函式
- [20221104]bash exec使用技巧.txt
- Git Bash的基礎使用Git
- 如何使用AirDrop將檔案從iPhone或iPad空投到Mac計算機AIiPhoneiPadMac計算機
- Virtuoso計算器使用教程
- 如何使用 Bash 指令碼從 SAR 報告中獲取 CPU 和記憶體使用情況指令碼記憶體
- 從 GPT-4 到 AGI:計算OOMGPTOOM
- shell程式設計–bash變數程式設計變數
- 用 bash 倒數計時日期
- 【雲端計算】從事雲端計算運維可以考取哪些證書?運維
- 從Oracle的SQL_ID到PG14引入核心的QUERY_IDOracleSQL
- 從索尼洩密看雲端計算安全
- 想學計算機從什麼學起?計算機
- [20211230]完善sql_id指令碼.txtSQL指令碼
- C#使用程式呼叫bash,不斷往bash內插入命令並執行C#
- 如何用bash 倒數計時日期
- Bash程式設計007——函式(一)程式設計函式
- Bash vs Python:你該使用哪個?Python
- 在 Bash 中使用[方括號] (一)
- 使用Git Bash進行程式碼管理Git行程