您好,登錄后才能下訂單哦!
這篇文章主要介紹了數據庫中如何驗證SQL ID與SQL HASH VALUE轉換,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
實驗目的:驗證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
感謝你能夠認真閱讀完這篇文章,希望小編分享的“數據庫中如何驗證SQL ID與SQL HASH VALUE轉換”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。