浅析buffer busy waits / buffer latch

Buffer busy waits
事件概述
等待可用buffer
造成buffer busy waits等待事件的有4个原因
1.buffer busy waits:因为另一个会话获得了buffer pin,会话不能pin buffer
2.read by other session:另一个会话正在从磁盘中读取buffer,会话不能pin buffer
3.gc buffer busy acquire:另一个会话正在从另一个实例的cache中读取buffer。
4.gc buffer busy release:另一个会话从另一个实例的cache中读取buffer到自己的cache中。
对于块的buffer busy waits总体来说是因为多个进程重复访问相同的块造成的(比如许多会话访问同一个索引)
解决办法
1.Block Type Possible Actions
2.减少应用对热块的访问,检查是否充分扫描索引,改变pctree/pctused,增加initrans,减少块记录的行数
3.提升段的freelist,使用freelist group
4.增加更多的freelist,确保每个实例都有自己的freelist group
5.增加回滚段
6.bug导致
参考文档 
WAITEVENT: "buffer busy waits" Reference Note (文档 ID 34405.1)
Resolving Issues Where Waits for 'buffer busy waits' are Seen When Concurrency for Buffers is High (文档 ID 1476043.1)


Buffer  latch
事件概述
等待buffer的hash chain latch
找到latch锁的内存位置
select *
from v$latch a, v$latchname b
where addr = latch addr
and a.latch# = b.latch#;

buffer cache被隐式地hash值连接起来。在链被扫描时,每个链被latch锁保护。这个事件会被对于同一个块过多的访问导致,需要检查应用程序。


解决办法
1.可根据等待事件找到访问过多的表,减少dml和select语句对数据量的读取,This may be because individual SQL statements are reading more buffers than they need to or SQL affecting specific buffers does so at the same time,sql语句获得了过多的buffer。
2.减小buffer cache,buffer cache的减少,latch的变化也会减少,但是这只会减少此事件的发生,问题可能会转移到其他地方
3.dbwr的吞吐量也是影响此等待事件的因素之一。dbwr吞吐量较小,latch所保护的数据就越多,dbwr数量关系dbwr吞吐量。
4.增加pctfree,同样也是减少了每个块的行数
5.如果范围扫描不常使用,可用考虑reverse key index,


参考文档:
Troubleshooting 'latch: cache buffers chains' Wait Contention (文档 ID 1342917.1)
How to Identify Hot Blocks Within the Database Buffer Cache that may be Associated with 'latch: cache buffers chains' Wait Contention (文档 ID 163424.1)

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

转载于:http://blog.itpub.net/31461640/viewspace-2141285/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值