[20260629]跟踪library cache lock library cache pin使用bpftrace.txt
[20260629]跟踪library cache lock library cache pin使用bpftrace.txt
--//以前写过一个跟踪library cache lock library cache pin使用gdb的脚本,尝试使用bpftrace在写一个类似脚本。
$ cat lkpn.gdb
set pagination off
set logging file /tmp/lkpn.log
set logging overwrite on
set logging on
set $lk = 0
set $pn = 0
set $lock = 0
break kgllkal
commands
silent
printf "kgllkal count %02d -- handle address: %016x, mode: %d ", ++$lk ,$rdx ,$rcx
echo kglnaobj address:
x/s $rdx+0x1c8
c
end
break kglpnal
commands
silent
printf "kglpnal count %02d -- handle address: %016x, mode: %d ", ++$pn ,$rdx ,$rcx
echo kglnaobj address:
x/s $rdx+0x1c8
c
end
--//修改使用bpftrace的脚本.注:通过kimi,AI建立的脚本:
$ cat lkpn21c.bt
#!/usr/bin/env bpftrace
uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kgllkal
/ $1 == 0 || pid == $1 /
{
@lk++;
printf("kgllkal count %02d -- handle address: %016lx, mode: %d ", @lk, arg2, arg3);
// printf("spid %d ",pid);
printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}
uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kglpnal
/ $1 == 0 || pid == $1 /
{
@pn++;
printf("kglpnal count %02d -- handle address: %016lx, mode: %d ", @pn, arg2, arg3);
// printf("spid %d ",pid);
printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}
--//仅仅输出kglnaobj的前256字节.
--//简单测试如下:
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.
--//测试在centos 9下进行.
SCOTT@book01p> @ spid
==============================
SID : 33
SERIAL# : 46766
PROCESS : 3261
SERVER : DEDICATED
SPID : 3263
PID : 8
P_SERIAL# : 6
KILL_COMMAND : alter system kill session '33,46766' immediate;
PL/SQL procedure successfully completed.
2.测试:
--//执行如下语句多次,避免递归。
select * from dept where deptno=49;
--//以root用户执行如下:
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3263
Attached 2 probes
--//select * from dept where deptno=50;第1次
kgllkal count 01 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kglpnal count 01 -- handle address: 000000006f4cad88, mode: 2 kglnaobj address: select * from dept where deptno=50
kgllkal count 02 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 03 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 04 -- handle address: 00000000698802d8, mode: 2 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715$BUILD$BOOK01P
kgllkal count 05 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
kglpnal count 02 -- handle address: 000000006f4cab58, mode: 3 kglnaobj address:
kgllkal count 06 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 08 -- handle address: 00000000698800a8, mode: 1 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715Child:0BOOK01P
kglpnal count 03 -- handle address: 00000000698800a8, mode: 3 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715Child:0BOOK01P
kgllkal count 09 -- handle address: 00000000676c9270, mode: 1 kglnaobj address: SCOTTBOOK01P
kgllkal count 10 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 12 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kglpnal count 04 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kgllkal count 13 -- handle address: 0000000063ed57c8, mode: 2 kglnaobj address: 356430430180546253BOOK01P
kglpnal count 05 -- handle address: 0000000063ed57c8, mode: 2 kglnaobj address: 356430430180546253BOOK01P
kgllkal count 14 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kglpnal count 06 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kgllkal count 15 -- handle address: 0000000063ec10f8, mode: 2 kglnaobj address: 4204170303842060717BOOK01P
kglpnal count 07 -- handle address: 0000000063ec10f8, mode: 2 kglnaobj address: 4204170303842060717BOOK01P
kgllkal count 16 -- handle address: 0000000063ebfcc8, mode: 2 kglnaobj address: 5467474030038125289BOOK01P
kglpnal count 08 -- handle address: 0000000063ebfcc8, mode: 2 kglnaobj address: 5467474030038125289BOOK01P
kgllkal count 17 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kglpnal count 09 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
--//select * from dept where deptno=50;第2次
kgllkal count 18 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kgllkal count 19 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
kgllkal count 20 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kglpnal count 10 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
--//select * from dept where deptno=50;第3次
kgllkal count 21 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kgllkal count 22 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
--//select * from dept where deptno=50;第4次
--//已经没有输出。
--//按ctrl+c中断退出,出现如下信息,记录lk,pn的数值。
^C
@lk: 22
@pn: 10
3.继续:
--//如果跟踪一些特殊sql语句,第4次执行也会出现library cache lock /library cache pin访问对象的情况。
--//例子:
--//在pdb下执行select sid from v$mystat where rownum=1;仅仅输出第3,4次结果的情况,前面几次输出太多。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3193
Attached 2 probes
--//select sid from v$mystat where rownum=1;第3次
kgllkal count 01 -- handle address: 0000000063ee3af8, mode: 1 spid 3193 kglnaobj address: select sid from v$mystat where rownum=1
kgllkal count 02 -- handle address: 0000000063ee2398, mode: 1 spid 3193 kglnaobj address:
--//select sid from v$mystat where rownum=1;第4次
--//已经没有输出。
--//而在cdb下执行select sid from v$mystat where rownum=1;仅仅输出第3,4次结果的情况,前面几次输出太多。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3268
...
--//select sid from v$mystat where rownum=1;第3次
kgllkal count 29 -- handle address: 0000000063ee3af8, mode: 1 spid 3268 kglnaobj address: select sid from v$mystat where rownum=1
kgllkal count 30 -- handle address: 0000000070db1450, mode: 1 spid 3268 kglnaobj address:
kgllkal count 31 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 32 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 33 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 34 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 35 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 36 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 37 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 38 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
--//select sid from v$mystat where rownum=1;第4次
kgllkal count 39 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 40 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 41 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 42 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
--//可以发现第4次执行会访问book.SYS.CDB$ROOT对象。
SYS@book> @ sharepool/shp4z 000000007294eb40 -1
HANDLE_TYPE KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLHDIVC KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLHDBID KGLOBT09
---------------------- ---------------- ---------------- --------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- ----------
parent handle address 000000007294EB40 000000007294EB40 SYS.book 0 0 0 00 00 0 0 0 0 0 2789284771 72611 0
SYS@book> @ kglob '' 2789284771 ''
==============================
INST_ID : 1
OWNER : SYS
NAME : book
DB_LINK :
NAMESPACE : DBINSTANCE
TYPE : CURSOR
NAMESPACE_NUM : 74
NAMESPACE_HEX : 4a
SHARABLE_MEM : 0
PERSISTENT_MEM : 0
RUNTIME_MEM : 0
LOADS : 0
EXECUTIONS : 0
LOCKS : 0
PINS : 0
KEPT : NO
CHILD_LATCH : 72611
INVALIDATIONS : 0
HASH_VALUE : 2789284771
HASH_HEX : a6411ba3
LOCK_MODE : NONE
PIN_MODE : NONE
STATUS : UNKOWN
TIMESTAMP :
PREVIOUS_TIMESTAMP :
LOCKED_TOTAL : 10592
PINNED_TOTAL : 0
PROPERTY :
FULL_HASH_VALUE : b885bb910059a4d2fdbfc245a6411ba3
CON_ID : 1
CON_NAME : CDB$ROOT
ADDR : 000000007294EB40
PAR_ADDR : 000000007294EB40
HANDLE_TYPE : parent handle address
KGLOBHD0 : 00
KGLOBHD6 : 00
EDITION :
SQL_ID :
KGL_BUCKET : 72611
OBJECT_STR : book.SYS.CDB$ROOT\x4a\0\0\0
PL/SQL procedure successfully completed.
--//数据库实例对象。
--//参考链接:[20260604]为什么cdb与pdb下密集执行性能差异巨大.txt
--//并不是讲在pdb下执行不会出现以上现象,例子:
--//在pdb下执行select count(*) from dba_tab_statistics;第4次执行,以后类似。
kgllkal count 01 -- handle address: 0000000070c16700, mode: 2 spid 3406 kglnaobj address: X$COMVW$SYSc4be4350BOOK01P
kglpnal count 01 -- handle address: 0000000070c16700, mode: 2 spid 3406 kglnaobj address: X$COMVW$SYSc4be4350BOOK01P
kgllkal count 02 -- handle address: 000000006fc092f8, mode: 1 spid 3406 kglnaobj address: SELECT /*CROSSCON*/ /* */ /*"INT$DATA_LINK_TAB_STATISTICS"*/ /* NONE */ * FROM NO_COMMON_DATA("SYS"."INT$DATA_LINK_TAB_STATISTICS")
kgllkal count 03 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 02 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 04 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 03 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 05 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 04 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 06 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 05 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 06 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 08 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 07 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 09 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 08 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 10 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 09 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 10 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 12 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 11 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 13 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 12 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 14 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 13 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 15 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 14 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 16 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 15 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 17 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 16 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 18 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 17 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 19 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 18 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 20 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 19 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 21 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 20 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 22 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 21 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 23 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 22 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 24 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 23 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 25 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 24 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 26 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 25 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 27 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 26 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 28 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 27 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 29 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 28 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 30 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 29 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 31 -- handle address: 000000006f7627f8, mode: 1 spid 3406 kglnaobj address: SELECT /*+ NO_STATEMENT_QUEUING RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) OPT_PARAM('_ENABLE_VIEW_PDB', 'FALSE') */ "ORIGIN_CON_ID","APPLICATION" FROM NO_CROSS_CONTAINER("SYS"."INT$DATA_LINK_TAB_STATISTICS") "INT$DATA_LINK_TAB_STATISTICS" WHERE "INT$DATA_LI
kgllkal count 32 -- handle address: 000000006f6e25c8, mode: 1 spid 3406 kglnaobj address:
kgllkal count 33 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 34 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 35 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 36 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 37 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 38 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 39 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 40 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 41 -- handle address: 000000006fc092f8, mode: 1 spid 3406 kglnaobj address: SELECT /*CROSSCON*/ /* */ /*"INT$DATA_LINK_TAB_STATISTICS"*/ /* NONE */ * FROM NO_COMMON_DATA("SYS"."INT$DATA_LINK_TAB_STATISTICS")
kgllkal count 42 -- handle address: 000000006f6d3938, mode: 1 spid 3406 kglnaobj address: SELECT /*+ NO_STATEMENT_QUEUING RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) OPT_PARAM('_ENABLE_VIEW_PDB', 'FALSE') */ "ORIGIN_CON_ID","APPLICATION" FROM NO_CROSS_CONTAINER("SYS"."INT$DATA_LINK_TAB_STATISTICS") "INT$DATA_LINK_TAB_STATISTICS" WHERE "INT$DATA_LI
kgllkal count 43 -- handle address: 000000006f75dd38, mode: 1 spid 3406 kglnaobj address:
--//在cdb下执行select count(*) from dba_tab_statistics;第4次执行,以后类似。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3592
Attached 2 probes
kgllkal count 01 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 02 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 03 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 04 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 05 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 06 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 08 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 09 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 10 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 12 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 13 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 14 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 15 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 16 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 17 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 18 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 19 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 20 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 21 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 22 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 23 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 24 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 25 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 26 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
--//出现26次
--//你可以测试 select count(*) from dba_tab_statistics where rownum=1;在pdb与cdb下的执行情况,不再贴出。
--//pdb下执行第4次以后不再输出,而cdb下执行第4次以后与cdb下执行select count(*) from dba_tab_statistics;类似。
--//以前写过一个跟踪library cache lock library cache pin使用gdb的脚本,尝试使用bpftrace在写一个类似脚本。
$ cat lkpn.gdb
set pagination off
set logging file /tmp/lkpn.log
set logging overwrite on
set logging on
set $lk = 0
set $pn = 0
set $lock = 0
break kgllkal
commands
silent
printf "kgllkal count %02d -- handle address: %016x, mode: %d ", ++$lk ,$rdx ,$rcx
echo kglnaobj address:
x/s $rdx+0x1c8
c
end
break kglpnal
commands
silent
printf "kglpnal count %02d -- handle address: %016x, mode: %d ", ++$pn ,$rdx ,$rcx
echo kglnaobj address:
x/s $rdx+0x1c8
c
end
--//修改使用bpftrace的脚本.注:通过kimi,AI建立的脚本:
$ cat lkpn21c.bt
#!/usr/bin/env bpftrace
uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kgllkal
/ $1 == 0 || pid == $1 /
{
@lk++;
printf("kgllkal count %02d -- handle address: %016lx, mode: %d ", @lk, arg2, arg3);
// printf("spid %d ",pid);
printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}
uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kglpnal
/ $1 == 0 || pid == $1 /
{
@pn++;
printf("kglpnal count %02d -- handle address: %016lx, mode: %d ", @pn, arg2, arg3);
// printf("spid %d ",pid);
printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}
--//仅仅输出kglnaobj的前256字节.
--//简单测试如下:
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.
--//测试在centos 9下进行.
SCOTT@book01p> @ spid
==============================
SID : 33
SERIAL# : 46766
PROCESS : 3261
SERVER : DEDICATED
SPID : 3263
PID : 8
P_SERIAL# : 6
KILL_COMMAND : alter system kill session '33,46766' immediate;
PL/SQL procedure successfully completed.
2.测试:
--//执行如下语句多次,避免递归。
select * from dept where deptno=49;
--//以root用户执行如下:
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3263
Attached 2 probes
--//select * from dept where deptno=50;第1次
kgllkal count 01 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kglpnal count 01 -- handle address: 000000006f4cad88, mode: 2 kglnaobj address: select * from dept where deptno=50
kgllkal count 02 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 03 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 04 -- handle address: 00000000698802d8, mode: 2 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715$BUILD$BOOK01P
kgllkal count 05 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
kglpnal count 02 -- handle address: 000000006f4cab58, mode: 3 kglnaobj address:
kgllkal count 06 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 08 -- handle address: 00000000698800a8, mode: 1 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715Child:0BOOK01P
kglpnal count 03 -- handle address: 00000000698800a8, mode: 3 kglnaobj address: ae6f29635de13efcbc72a9fe72ea2715Child:0BOOK01P
kgllkal count 09 -- handle address: 00000000676c9270, mode: 1 kglnaobj address: SCOTTBOOK01P
kgllkal count 10 -- handle address: 0000000073d5cac8, mode: 2 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000006f200ed8, mode: 2 kglnaobj address: 1847639831SYSCDB$ROOT
kgllkal count 12 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kglpnal count 04 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kgllkal count 13 -- handle address: 0000000063ed57c8, mode: 2 kglnaobj address: 356430430180546253BOOK01P
kglpnal count 05 -- handle address: 0000000063ed57c8, mode: 2 kglnaobj address: 356430430180546253BOOK01P
kgllkal count 14 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kglpnal count 06 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kgllkal count 15 -- handle address: 0000000063ec10f8, mode: 2 kglnaobj address: 4204170303842060717BOOK01P
kglpnal count 07 -- handle address: 0000000063ec10f8, mode: 2 kglnaobj address: 4204170303842060717BOOK01P
kgllkal count 16 -- handle address: 0000000063ebfcc8, mode: 2 kglnaobj address: 5467474030038125289BOOK01P
kglpnal count 08 -- handle address: 0000000063ebfcc8, mode: 2 kglnaobj address: 5467474030038125289BOOK01P
kgllkal count 17 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
kglpnal count 09 -- handle address: 0000000063ecc138, mode: 2 kglnaobj address: 7574277674127661070BOOK01P
--//select * from dept where deptno=50;第2次
kgllkal count 18 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kgllkal count 19 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
kgllkal count 20 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
kglpnal count 10 -- handle address: 0000000063edf248, mode: 2 kglnaobj address: DEPTSCOTTBOOK01P0c
--//select * from dept where deptno=50;第3次
kgllkal count 21 -- handle address: 000000006f4cad88, mode: 1 kglnaobj address: select * from dept where deptno=50
kgllkal count 22 -- handle address: 000000006f4cab58, mode: 1 kglnaobj address:
--//select * from dept where deptno=50;第4次
--//已经没有输出。
--//按ctrl+c中断退出,出现如下信息,记录lk,pn的数值。
^C
@lk: 22
@pn: 10
3.继续:
--//如果跟踪一些特殊sql语句,第4次执行也会出现library cache lock /library cache pin访问对象的情况。
--//例子:
--//在pdb下执行select sid from v$mystat where rownum=1;仅仅输出第3,4次结果的情况,前面几次输出太多。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3193
Attached 2 probes
--//select sid from v$mystat where rownum=1;第3次
kgllkal count 01 -- handle address: 0000000063ee3af8, mode: 1 spid 3193 kglnaobj address: select sid from v$mystat where rownum=1
kgllkal count 02 -- handle address: 0000000063ee2398, mode: 1 spid 3193 kglnaobj address:
--//select sid from v$mystat where rownum=1;第4次
--//已经没有输出。
--//而在cdb下执行select sid from v$mystat where rownum=1;仅仅输出第3,4次结果的情况,前面几次输出太多。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3268
...
--//select sid from v$mystat where rownum=1;第3次
kgllkal count 29 -- handle address: 0000000063ee3af8, mode: 1 spid 3268 kglnaobj address: select sid from v$mystat where rownum=1
kgllkal count 30 -- handle address: 0000000070db1450, mode: 1 spid 3268 kglnaobj address:
kgllkal count 31 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 32 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 33 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 34 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 35 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 36 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 37 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 38 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
--//select sid from v$mystat where rownum=1;第4次
kgllkal count 39 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 40 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 41 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 42 -- handle address: 000000007294eb40, mode: 2 spid 3268 kglnaobj address: bookSYSCDB$ROOT
--//可以发现第4次执行会访问book.SYS.CDB$ROOT对象。
SYS@book> @ sharepool/shp4z 000000007294eb40 -1
HANDLE_TYPE KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLHDIVC KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLHDBID KGLOBT09
---------------------- ---------------- ---------------- --------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- ----------
parent handle address 000000007294EB40 000000007294EB40 SYS.book 0 0 0 00 00 0 0 0 0 0 2789284771 72611 0
SYS@book> @ kglob '' 2789284771 ''
==============================
INST_ID : 1
OWNER : SYS
NAME : book
DB_LINK :
NAMESPACE : DBINSTANCE
TYPE : CURSOR
NAMESPACE_NUM : 74
NAMESPACE_HEX : 4a
SHARABLE_MEM : 0
PERSISTENT_MEM : 0
RUNTIME_MEM : 0
LOADS : 0
EXECUTIONS : 0
LOCKS : 0
PINS : 0
KEPT : NO
CHILD_LATCH : 72611
INVALIDATIONS : 0
HASH_VALUE : 2789284771
HASH_HEX : a6411ba3
LOCK_MODE : NONE
PIN_MODE : NONE
STATUS : UNKOWN
TIMESTAMP :
PREVIOUS_TIMESTAMP :
LOCKED_TOTAL : 10592
PINNED_TOTAL : 0
PROPERTY :
FULL_HASH_VALUE : b885bb910059a4d2fdbfc245a6411ba3
CON_ID : 1
CON_NAME : CDB$ROOT
ADDR : 000000007294EB40
PAR_ADDR : 000000007294EB40
HANDLE_TYPE : parent handle address
KGLOBHD0 : 00
KGLOBHD6 : 00
EDITION :
SQL_ID :
KGL_BUCKET : 72611
OBJECT_STR : book.SYS.CDB$ROOT\x4a\0\0\0
PL/SQL procedure successfully completed.
--//数据库实例对象。
--//参考链接:[20260604]为什么cdb与pdb下密集执行性能差异巨大.txt
--//并不是讲在pdb下执行不会出现以上现象,例子:
--//在pdb下执行select count(*) from dba_tab_statistics;第4次执行,以后类似。
kgllkal count 01 -- handle address: 0000000070c16700, mode: 2 spid 3406 kglnaobj address: X$COMVW$SYSc4be4350BOOK01P
kglpnal count 01 -- handle address: 0000000070c16700, mode: 2 spid 3406 kglnaobj address: X$COMVW$SYSc4be4350BOOK01P
kgllkal count 02 -- handle address: 000000006fc092f8, mode: 1 spid 3406 kglnaobj address: SELECT /*CROSSCON*/ /* */ /*"INT$DATA_LINK_TAB_STATISTICS"*/ /* NONE */ * FROM NO_COMMON_DATA("SYS"."INT$DATA_LINK_TAB_STATISTICS")
kgllkal count 03 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 02 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 04 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 03 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 05 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 04 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 06 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 05 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 06 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 08 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 07 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 09 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 08 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 10 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 09 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 10 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 12 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 11 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 13 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 12 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 14 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 13 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 15 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 14 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 16 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 15 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 17 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 16 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 18 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 17 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 19 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 18 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 20 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 19 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 21 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 20 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 22 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 21 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 23 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 22 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 24 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 23 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 25 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 24 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 26 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 25 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 27 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 26 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 28 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 27 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 29 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 28 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 30 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kglpnal count 29 -- handle address: 000000006f676680, mode: 2 spid 3406 kglnaobj address: EAP$NULLSYSCDB$ROOT
kgllkal count 31 -- handle address: 000000006f7627f8, mode: 1 spid 3406 kglnaobj address: SELECT /*+ NO_STATEMENT_QUEUING RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) OPT_PARAM('_ENABLE_VIEW_PDB', 'FALSE') */ "ORIGIN_CON_ID","APPLICATION" FROM NO_CROSS_CONTAINER("SYS"."INT$DATA_LINK_TAB_STATISTICS") "INT$DATA_LINK_TAB_STATISTICS" WHERE "INT$DATA_LI
kgllkal count 32 -- handle address: 000000006f6e25c8, mode: 1 spid 3406 kglnaobj address:
kgllkal count 33 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 34 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 35 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 36 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 37 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 38 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 39 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 40 -- handle address: 000000007294eb40, mode: 2 spid 3406 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 41 -- handle address: 000000006fc092f8, mode: 1 spid 3406 kglnaobj address: SELECT /*CROSSCON*/ /* */ /*"INT$DATA_LINK_TAB_STATISTICS"*/ /* NONE */ * FROM NO_COMMON_DATA("SYS"."INT$DATA_LINK_TAB_STATISTICS")
kgllkal count 42 -- handle address: 000000006f6d3938, mode: 1 spid 3406 kglnaobj address: SELECT /*+ NO_STATEMENT_QUEUING RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) OPT_PARAM('_ENABLE_VIEW_PDB', 'FALSE') */ "ORIGIN_CON_ID","APPLICATION" FROM NO_CROSS_CONTAINER("SYS"."INT$DATA_LINK_TAB_STATISTICS") "INT$DATA_LINK_TAB_STATISTICS" WHERE "INT$DATA_LI
kgllkal count 43 -- handle address: 000000006f75dd38, mode: 1 spid 3406 kglnaobj address:
--//在cdb下执行select count(*) from dba_tab_statistics;第4次执行,以后类似。
# bpftrace /home/oracle/study/202606/lkpn21c.bt 3592
Attached 2 probes
kgllkal count 01 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 02 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 03 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 04 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 05 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 06 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 07 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 08 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 09 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 10 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 11 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 12 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 13 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 14 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 15 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 16 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 17 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 18 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 19 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 20 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 21 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 22 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 23 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 24 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 25 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
kgllkal count 26 -- handle address: 000000007294eb40, mode: 2 spid 3592 kglnaobj address: bookSYSCDB$ROOT
--//出现26次
--//你可以测试 select count(*) from dba_tab_statistics where rownum=1;在pdb与cdb下的执行情况,不再贴出。
--//pdb下执行第4次以后不再输出,而cdb下执行第4次以后与cdb下执行select count(*) from dba_tab_statistics;类似。
浙公网安备 33010602011771号