sharedpool之三:librarycache结构-dumpLibraryHandle(四)

2014-11-24 09:06:30 · 作者: · 浏览: 2
=TABLE(02) Parent=BYS.DEPT
ReadOnlyDependencies: count='1' size='16'
ReadDependency: num='0' Table=0x23fde7f0 Reference=0x23fddc1c Handle=0x2345e2a8 Flags=DEP/ROD/KPP[61]
Accesses: count='1' size='16'
Dependency: num='0' Type=0009
DataBlocks:
Block: #='0' name=KGLH0^a8dc75cd pins=0 Change=NONE
Heap=0x2526a068 Pointer=0x23fdd8e4 Extent=0x23fdd84c Flags=I/-/-/A/-/-
#####Heap=0x2526a068子游标堆0的地址,与x$kglob.KGLOBHD0相符
FreedLocation=0 Alloc=1.382812 Size=3.964844 LoadTime=4405191980
Block: #='6' name=SQLA^a8dc75cd pins=0 Change=NONE
Heap=0x243f2238 Pointer=0x23fdc624 Extent=0x23fdb84c Flags=I/-/-/A/-/E
##Heap=0x243f2238这个就是子游标堆6的地址,与x$kglob.KGLOBHD6相符
FreedLocation=0 Alloc=3.785156 Size=3.964844 LoadTime=0
NamespaceDump: --子游标信息
Child Cursor: Heap0=0x23fdd8e4 Heap6=0x23fdc624 Heap0 Load Time=01-04-2014 18:03:50 Heap6 Load Time=01-04-2014 18:03:50
NamespaceDump:
Parent Cursor: sql_id=f4yk5kundsxfd parent=0x243f1e1c maxchild=1 plk=n ppn=n
##父游标,sql_id=f4yk5kundsxfd与v$sql.sql_id相符,

###############################################

DUMP SQL语句父子游标的堆0和堆6

SYS@ bys3>select kglhdadr,kglhdpar,kglnaobj,KGLOBHS0,kglobhd0,KGLOBHS6,KGLOBHD6 from x$kglob where kglnaobj like 'select * from bys.test%';
KGLHDADR KGLHDPAR KGLNAOBJ KGLOBHS0 KGLOBHD0 KGLOBHS6 KGLOBHD6
-------- -------- ------------------------- ---------- -------- ---------- --------
240EDA68 239948A4 select * from bys.test 4348 23B31E80 4060 245908B0
239948A4 239948A4 select * from bys.test 4500 241368BC 0 00

alter session set events 'immediate trace name heapdump_addr level 2,addr 0x241368BC'; --使用这样的语句把父子游标的堆0、堆6全DUMP出来。

我把三个DUMP文件的开头贴一下:

父游标堆0:desc=字段与x$kglob.KGLOBHD0对应,heap name="KGLH0^ 堆名字也表明是堆0
******************************************************
HEAP DUMP heap name="KGLH0^1020848" desc=0x241368bc
extent sz=0xff4 alt=32767 het=28 rec=9 flg=2 opc=0
parent=0x200010b4 owner=0x24136888 nex=(nil) xsz=0xfe4 heap=(nil)
fl2=0x26, nex=(nil), dsxvers=1, dsxflg=0x0
dsx first ext=0x245903fc
EXTENT 0 addr=0x245903fc
Chunk 24590404 sz= 44 perm "perm " alo=44
Dump of memory from 0x24590404 to 0x24590430

子游标堆0:--我的版本是11.2.0.4,有的版本DUMP出来的heap name="CCURSE,,比较直观说明是子游标。。这 里只能通过desc=字段与x$kglob.KGLOBHD6对应

******************************************************
HEAP DUMP heap name="KGLH0^1020848" desc=0x23b31e80
extent sz=0xff4 alt=32767 het=28 rec=9 flg=2 opc=0
parent=0x200010b4 owner=0x23b31e4c nex=(nil) xsz=0xfe4 heap=(nil)
fl2=0x26, nex=(nil), dsxvers=1, dsxflg=0x0
dsx first ext=0x240b19c4
EXTENT 0 addr=0x240b19c4
Chunk 240b19cc sz= 44 perm "perm " alo=44

子游标堆6: --从DUMP名字也可以看出是存放SQL执行计划等的SQL区域。--有的版本DUMP出来这里显示的heap name="SQL AREA,我这个11.2.0.4版本上看就这样了。。

******************************************************
HEAP DUMP heap name="SQLA^1020848" desc=0x245908b0
extent sz=0xff4 alt=32767 het=184 rec=0 flg=2 opc=2
parent=0x200010b4 owner=0x245907e4 nex=(nil) xsz=0xfe4 heap=(nil)
fl2=0x27, nex=(nil), dsxvers=1, dsxflg=0x0
dsx first ext=0x24b12c54
EXTENT 0 addr=0x24b12c54
Chunk 24b12c5c sz= 44 perm "perm " alo=44