ITPub博客

首页 > 数据库 > Oracle > 用于排查cache buffers chains

用于排查cache buffers chains

原创 Oracle 作者:abstractcyj 时间:2021-01-05 14:38:18 0 删除 编辑

1. 首先定位到争用最高的latch, 主要关注点为miss与sleep, sleep次数多,说明争用也越严重。

SELECT child# "cCHILD" ,

  addr "sADDR" ,

  gets "sGETS" ,

  misses "sMISSES" ,

  sleeps "sSLEEPS"

FROM v$latch_children

WHERE name = 'cache buffers chains'

ORDER BY 5,  1,  2,  3;


2.  使用定位到的latch的地址,查询latch保护的extents。

SELECT  /*+ RULE */

  e.owner  || '.'  || e.segment_name segment_name,

  e.extent_id extent#,

  x.dbablk - e.block_id + 1 block#,

  x.tch,

  l.child#

FROM sys.v$latch_children l,

  sys.x$bh x,

  sys.dba_extents e

WHERE x.hladdr = '&ADDR'

AND e.file_id  = x.file#

AND x.hladdr   = l.addr

AND x.dbablk BETWEEN e.block_id AND e.block_id + e.blocks -1

ORDER BY x.tch DESC ;


其实对于cache buffers chains, 从AWR与ASH报告中,TOP SQL与逻辑读取最高的segments就基本能够确认是哪些对象争用最严重。接下来就是对SQL的优化了。


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

上一篇: DB2备份与恢复
请登录后发表评论 登录
全部评论
曾从事java方向开发多年。近年已经转入数据库方向。主要擅长SQL优化,Oracle数据库问题诊断,Oracle备份与恢复等。服务于医药物流,医院等行业

注册时间:2010-01-26

  • 博文量
    582
  • 访问量
    946361