ITPub博客

首页 > 数据库 > Oracle > [20240823]SYS.1073777561是什么对象.txt

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

原创 Oracle 作者:lfree 时间:2024-08-25 20:25:19 0 删除 编辑

[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.
--//不知道如何命名的,有机会在探究看看.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3025927/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970745