ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 高级trouble shooting (3) “Cache buffers chains latch”。Alex

高级trouble shooting (3) “Cache buffers chains latch”。Alex

原创 Linux操作系统 作者:flying_warrior 时间:2011-04-23 00:29:58 0 删除 编辑

当发生cache buffer chain 的时候大家都知道去V$SESSION_WAIT 中查看child_latch_address 然后关联X$BHHLADDR 来查看这个latch 控制了哪些object

 

然后呢?大家可能会根据BH TCH 字段排个序 看看哪个count 高那么问题可能就发生在哪个object上。

可是这样却不一定能够100%的定位问题所在,众所周知tch字段随着一段时间不用就会自动递减,但是实际上他的自增也是有学问的。

 

oradebug setospid 29117

SQL> oradebug dumpvar sga kcbatt_

ub4 kcbatt_ [060013DE8, 060013DEC) = 00000003

这个参数控制了 每隔3 touch 一次 count 才会加但是如果3touch 100 他还是+1

 

这样道理就很简单了 有一个SQL 3touch一次 理论上会发生28800次最大碰触。

而另一个SQL 却是每秒检索100次,10秒后他又检索100次,那么tch显示他发生了8640次碰触,可实际上他是8640*100次。

可是这样的SQL你却无法检验出来。

 

LatchProfX.sql =Latch Profile extends.

Oracle 大师Tanel Poder的工具,可以很轻易的解决这个问题,

SID USERNAME   MACHINE                EVENT                          PARAM                   W   WT SQL                          ST     LT LOGON_TIME

1085 EDW1_USER  xen19-vm05             latch: cache buffers chains    0x27E5A780              -1  237 g7svvy17z645h/1tmc2nfqrznv3  A    5529       8539
 
SQL> @latchprofx sid,name,hmode,object % 27E5A780 100000
 
 SID NAME                   HMODE         OBJECT   Held  Gets  Held %  Held ms
---- ---------------------- ------------ ------- ------ ----- ------- --------
 1085 cache buffers chains   exclusive     40EB02   3928  3797    3.93   41.637
 151  cache buffers chains   exclusive     40EB02   3711  3660    3.71   39.337
 138  cache buffers chains   shared        40EB02    623   623     .62    6.604
 151  cache buffers chains   shared        40EB02    544   544     .54    5.766
 
 
SQL> @dba 40EB02
 
 RFILE#     BLOCK#
---------- ----------
         1      60162
 
Press enter to find the segment using V$BH (this may take CPU time), CTRL+C to cancel:
 
STATE      BLOCK_CLASS        OBJECT_TYPE         object                                          TCH  MODE_HELD
---------- ------------------ ------------------- ---------------------------------------- ---------- ----------
xcur       data block         INDEX               SYS.SYS_IOT_TOP_94276                           331          1
 
Press enter to query what segment resides there using DBA_EXTENTS (this can be IO intensive), CTRL+C to cancel:
 
OWNER                          SEGMENT_NAME         PARTITION_NAME  TABLESPACE_NAME
------------------------------ -------------------- --------------- -----------------
SYS                            SYS_IOT_TOP_94276                    SYSTEM

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

请登录后发表评论 登录
全部评论

注册时间:2009-06-21

  • 博文量
    49
  • 访问量
    79257