[20250901]x$kglob的kglhdbid字段.txt

来源:这里教程网 时间:2026-03-03 22:43:25 作者:

[20250901]x$kglob的kglhdbid字段.txt --//x$kglob的kglhdbid字段对应的bucket number。简单验证看看: $ ./lookup.awk kglhd kglhd : kernel generic library cache management object handle --//最后的bid 表示 bucket id. 1.环境: SCOTT@book01p> @ver2 ============================== PORT_STRING                   : x86_64/Linux 2.4.xx VERSION                       : 21.0.0.0.0 BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID                        : 0 PL/SQL procedure successfully completed. 2.测试: SCOTT@book01p> select * from dept where deptno=20;     DEPTNO DNAME                          LOC ---------- ------------------------------ -------------         20 RESEARCH                       DALLAS SCOTT@book01p> @ hashz HASH_VALUE SQL_ID        CHILD_NUMBER KGL_BUCKET HASH_HEX   SQL_EXEC_START      SQL_EXEC_ID ---------- ------------- ------------ ---------- ---------- ------------------- -----------   95129850 80baj2c2ur47u            0     102650   5ab90fa  2025-09-01 16:46:20    16777216 3.验证: SYS@book> @ sharepool/shp4 80baj2c2ur47u -1 HANDLE_TYPE            KGLHDADR         KGLHDPAR         C40                                        KGLHDLMD   KGLHDPMD   KGLHDIVC KGLOBHD0         KGLOBHD6           KGLOBHS0   KGLOBHS6   KGLOBT16   N0_6_16        N20   KGLNAHSH KGLOBT03        KGLOBT09 ---------------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- child handle address   0000000065DC79E0 0000000065DC9140 select * from dept where deptno=20                0          0          0 0000000065DC7820 0000000065DC8768       8080      20224       3299     31603      31603   95129850 80baj2c2ur47u          0 parent handle address  0000000065DC9140 0000000065DC9140 select * from dept where deptno=20                0          0          0 0000000065DC8F80 00                     4064          0          0      4064       4064   95129850 80baj2c2ur47u      65535 --//我写的脚本查询不包括kglhdbid字段。 SYS@book> @ descv x$kglob kglhdbid            Name                            Null?    Type            ------------------------------- -------- ----------------------------   168      KGLHDBID                                 NUMBER SYS@book> select kglhdbid,KGLHDADR,KGLHDPAR,kglnaobj c40,KGLNAHSH, KGLOBT03, KGLOBT09 from x$kglob where KGLOBT03='80baj2c2ur47u';   KGLHDBID KGLHDADR         KGLHDPAR         C40                                        KGLNAHSH KGLOBT03        KGLOBT09 ---------- ---------------- ---------------- ---------------------------------------- ---------- ------------- ----------     102650 0000000065DC79E0 0000000065DC9140 select * from dept where deptno=20         95129850 80baj2c2ur47u          0     102650 0000000065DC9140 0000000065DC9140 select * from dept where deptno=20         95129850 80baj2c2ur47u      65535 --//与前面hashz脚本的查询结果完全一致(KGL_BUCKET=102650)。 --//手工测试表dept看看: SYS@book> select kglhdbid,KGLHDADR,KGLHDPAR,kglnaobj c40,KGLNAHSH, KGLOBT03, KGLOBT09 from x$kglob where kglnaobj='DEPT';   KGLHDBID KGLHDADR         KGLHDPAR         C40                                        KGLNAHSH KGLOBT03        KGLOBT09 ---------- ---------------- ---------------- ---------------------------------------- ---------- ------------- ----------      98828 0000000065DC5080 0000000065DC5080 DEPT                                      249266700                        0 --//表对象dept的KGLHDBID=98828,验证看看。 $ sql_idz.sh "DEPT.SCOTT.BOOK01P\01\0\0\0" 3 sql_text = DEPT.SCOTT.BOOK01P\01\0\0\0 full_hash_value(16) = 05DB243908B3C797B99628590EDB820C or 05db243908b3c797b99628590edb820c xxxxx_matching_signature(10) = -5073823567219817972 or  13372920506489733644 hash_value(10) = 249266700 or hash_value(16) = 0EDB820C or 0edb820c sql_id(16) = B99628590EDB820C or b99628590edb820c sql_id(32) = bm5j8b47dr0hc sql_id(32) = bm5j8b47dr0hc sql_id(32) = bm5j8b47dr0hc --//hash_value(10)=249266700,与KGLNAHSH=249266700一致。 --//249266700 % 2^17 = 98828,也与KGLHDBID=98828对上。

相关推荐