[20210729]heapdump UGA.txt

来源:这里教程网 时间:2026-03-03 16:51:30 作者:

[20210729]heapdump UGA.txt --//昨天听课说到heapdump Dump,当我看到level马上出现一个疑惑。从网上抄一段内容。 alter session set events 'immediate trace name heapdump level <level>'; alter session set events '<error#>  trace name heapdump level <level>'; SQL> alter session set events 'immediate trace name heapdump level n'; --//其中的level n决定了将哪些内存堆转储到跟踪文件: Level 1:     PGA汇总信息 Level 2:     SGA汇总信息 Level 4:     UGA汇总信息 Level 8:     当前调用的汇总信息(CGA) Level 16:    用户调用的汇总信息(CGA) Level 32:    Large pool的汇总信息(LGA) Level 1025:  PGA详细信息 Level 2050:  SGA详细信息 Level 5000:  UGA详细信息 --//应该是4100. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Level 8200:  当前调用的详细信息 Level 16400: 用户调用的详细信息 Level 32800: Large pool的详细信息 --//比如Level 2:SGA汇总信息,而Level 2050: SGA详细信息 --//2050 = 0x802 --//Level 1025:  PGA详细信息,1025 = 0x401 --//你可以猜测前面数字是按照乘以2的方式递增的,中间什么可能出现5000呢?应该是4100 = 0x1004,这样才是等比排列。 --//从网上下载 DSI 301文档,M09533.pdf,P123页,可以发现上面表示的确实是5000,而前面的hex=0x1004 ,0x1004= 4100. --//很明显网上的链接都是抄来抄去,谁也没有注意这个细节,实际上UGA详细信息的level实际上是4100=0x1004. --//DSI 301的pdf文档无法拷贝和粘贴,自己划了一个表格。 heap description    <level> (hex|Dec)         <level> with contents (hex|Dec) ----------------------------------------------------------------------------- Top PGA                0x1      1              0x401   1025     Top SGA                0x2      2              0x802   2050 Top UGA                0x4      4              0x1004  4100 current call           0x8      8              0x2008  8200 user call              0x10    16              0x4010 16400 large pool             0x20    32              0x8020 32800 ----------------------------------------------------------------------------- --//自己尝试看看. --//5000 = 0x1388,4100 = 0x1004 SYS@book> alter session set events 'immediate trace name heapdump level 5000'; Session altered. SYS@book> @ pp TRACEFILE                                                                        FILE_NAME -------------------------------------------------------------------------------- ------------------------------------------------------------ /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619.trc                    book_ora_19619.trc $ grep "HEAP" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619.trc HEAP DUMP heap name="callheap"  desc=0xc0d1000 HEAP DUMP heap name="java pool"  desc=0x601c2a00 SYS@book> @ tix New tracefile_identifier =  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619_0001.trc SYS@book> alter session set events 'immediate trace name heapdump level 4100'; Session altered. $ grep "HEAP" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619_0001.trc HEAP DUMP heap name="session heap"  desc=0x7f9e3aca61a0 --//很明显前面5000是错的. SYS@book> @ tix New tracefile_identifier =  /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619_0002.trc SYS@book> alter session set events 'immediate trace name heapdump level 4'; Session altered. $ grep "HEAP" /u01/app/oracle/diag/rdbms/book/book/trace/book_ora_19619_0002.trc HEAP DUMP heap name="session heap"  desc=0x7f9e3aca61a0 --//再次验证5000是错误的.

相关推荐