共計 5392 個字符,預計需要花費 14 分鐘才能閱讀完成。
這篇文章主要介紹了數據庫中如何驗證 SQL ID 與 SQL HASH VALUE 轉換,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
實驗目的:驗證 SQL ID 與 SQL HASH VALUE 轉換
SQL
set linesize 1000
SQL
select count(1) from tab_01;
COUNT(1)
———-
85128
SQL
select * from table(dbms_xplan.display_cursor( null,null, advanced
PLAN_TABLE_OUTPUT
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
SQL_ID 6mhbq2s7z9ydn, child number 0
————————————-
select count(1) from tab_01
Plan hash value: 4218700832
———————————————————————
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
———————————————————————
| 0 | SELECT STATEMENT | | | 342 (100)| |
| 1 | SORT AGGREGATE | | 1 | | |
PLAN_TABLE_OUTPUT
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
| 2 | TABLE ACCESS FULL| TAB_01 | 85128 | 342 (1)| 00:00:01 |
———————————————————————
Query Block Name / Object Alias (identified by operation id):
————————————————————-
1 – SEL$1
2 – SEL$1 / TAB_01@SEL$1
Outline Data
————-
PLAN_TABLE_OUTPUT
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE(11.2.0.4)
DB_VERSION(11.2.0.4)
ALL_ROWS
OUTLINE_LEAF(@ SEL$1)
FULL(@ SEL$1 TAB_01 @ SEL$1)
END_OUTLINE_DATA
*/
PLAN_TABLE_OUTPUT
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Column Projection Information (identified by operation id):
———————————————————–
1 – (#keys=0) COUNT(*)[22]
已選擇 39 行。
SQL
select sql_text,sql_id,hash_value,child_number from v$sql where sql_text like select count(1) from tab_01%
SQL_TEXT
—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-
SQL_ID HASH_VALUE CHILD_NUMBER
————————– ———- ————
select count(1) from tab_01
6mhbq2s7z9ydn 267712948 0
SQL
select lower(trim( 6mhbq2s7z9ydn)) sql_id,trunc(mod(sum((instr( 0123456789abcdfghjkmnpqrstuvwxyz ,substr(lower(trim( 6mhbq2s7z9ydn)), level, 1)) – 1) *
2
power(32, length(trim( 6mhbq2s7z9ydn)) – level)), power(2, 32))) hash_value from dual
connect by level = length(trim( 6mhbq2s7z9ydn
SQL_ID HASH_VALUE
————————– ———-
6mhbq2s7z9ydn 267712948
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“數據庫中如何驗證 SQL ID 與 SQL HASH VALUE 轉換”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!