[20240823]SYS.1073777561是什么对象.txt

来源:这里教程网 时间:2026-03-03 20:34:20 作者:

[20240823]SYS.1073777561是什么对象.txt --//这几天一直在探究sql执行时调用kgllkal,kglpnal函数的情况,遇到一个问题. --//我发现执行kgllkal,kglpnal会访问一个句柄,对象SYS.1073777561,这一串数字表示怎么,做一个简单探究并做一个记录. 1.环境: SYS@book> @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.问题提出: SYS@book> select owner,name,namespace,type,hash_value,full_hash_value from v$db_object_cache where namespace='DBINSTANCE'; OWNER NAME       NAMESPACE  TYPE   HASH_VALUE FULL_HASH_VALUE ----- ---------- ---------- ------ ---------- -------------------------------- SYS   2763294012 DBINSTANCE CURSOR  509270897 af578157a1dbee941a3310101e5adb71 SYS   1073777561 DBINSTANCE CURSOR  471669191 25d8c2e2a1f8d5e74176b9b61c1d19c7 SYS   book       DBINSTANCE CURSOR 2789284771 b885bb910059a4d2fdbfc245a6411ba3 --//book 是建立测试库的sid.另外2个是怎么使用数字怎么回事.从namespace=DBINSTANCE很容易联想到PDB,还有1个 PDB$SEED, --//我的测试库使用PDBNAME=book01p.oracle竟然使用数字表示,那么数字从那里来. SYS@book> select pdb_id,DBID,PDB_NAME from dba_pdbs order by 1;     PDB_ID       DBID PDB_NAME ---------- ---------- ------------------------------          2 2763294012 PDB$SEED          3 1073777561 BOOK01P SYS@book> select obj#,CON_ID#,DBID,CON_UID from sys.container$ ;       OBJ#    CON_ID#       DBID    CON_UID ---------- ---------- ---------- ----------        267          1 1617337831          1      76661          3 1073777561 1073777561      76089          2 2763294012 2763294012 --//很明显这些数字来自sys.container$.很奇怪oracle为什么不统一使用名字. 3.顺便验证FULL_HASH_VALUE是否正确. SYS@book> @ kglob 0 471669191 ============================== INST_ID                       : 1 OWNER                         : SYS NAME                          : 1073777561 DB_LINK                       : NAMESPACE                     : DBINSTANCE TYPE                          : CURSOR NAMESPACE_NUM                 : 74 NAMESPACE_HEX                 : 4a SHARABLE_MEM                  : 0 LOADS                         : 0 EXECUTIONS                    : 0 LOCKS                         : 0 PINS                          : 0 KEPT                          : NO CHILD_LATCH                   : 72135 INVALIDATIONS                 : 0 HASH_VALUE                    : 471669191 LOCK_MODE                     : NONE PIN_MODE                      : NONE STATUS                        : UNKOWN TIMESTAMP                     : PREVIOUS_TIMESTAMP            : LOCKED_TOTAL                  : 10406 PINNED_TOTAL                  : 0 PROPERTY                      : FULL_HASH_VALUE               : 25d8c2e2a1f8d5e74176b9b61c1d19c7 CON_ID                        : 1 CON_NAME                      : CDB$ROOT ADDR                          : 000000006B97C9F8 EDITION                       : SQL_ID                        : OBJECT_STR                    : 1073777561.SYS.CDB$ROOT\x4a\0\0\0 PL/SQL procedure successfully completed. $ sql_idz.sh '1073777561.SYS.CDB$ROOT\x4a\0\0\0' 3 sql_text = 1073777561.SYS.CDB$ROOT\x4a\0\0\0 full_hash_value(16) = 25D8C2E2A1F8D5E74176B9B61C1D19C7 or 25d8c2e2a1f8d5e74176b9b61c1d19c7 xxxxx_matching_signature(10) = 4717161851524028871 or  23163905925233580487 hash_value(10) = 471669191 sql_id(32) = 42xptqsf1u6f7 sql_id(32) = 42xptqsf1u6f7 sql_id(32) = 42xptqsf1u6f7 --//full_hash_value(16) = 25D8C2E2A1F8D5E74176B9B61C1D19C7 or 25d8c2e2a1f8d5e74176b9b61c1d19c7完成对上. --//另外我还发现21c出现许多数字命名的对象,NAMESPACE=OPTIMIZER EXPRESSION HEADER,OPTIMIZER DIRECTIVE OWNER. --//不知道如何命名的,有机会在探究看看.

相关推荐