ITPub博客

首页 > Linux操作系统 > Linux操作系统 > buffer busy waits and read by other session的一些解决办法

buffer busy waits and read by other session的一些解决办法

原创 Linux操作系统 作者:keer7737 时间:2011-08-03 16:46:24 0 删除 编辑
    一个巧妙解除hot block引起的cache buffers chains latch争用的方法之一,就是推荐是将PCTFREE值去高,因为PCTFREE值取高,
将Hot Block分散,因此latch争用有时也会减少,但是这次测试因块数增加得过多,可以发现latch争用增加。这是因为为了执行update
而扫描的过程中,会发生latch争用。一般较高的pctfree有利于消除DML引起的争用。较低的PCTFREE有利于消除SELECT引起的争用。
因此DML和select都出现时,只变更PCTFREE值不能消除争用问题的可能性较高。这个原理在修改块大小时也同样适用。
    
    以上测试结果意味着为了减少update/update引起的buffer busy waits等待,调整较高的storage属性,有引起cache buffer chains latch
争用等另外性能问题的可能性,因此,为解决buffer busy waits问题。而变更storage属性时,需要经过充分测试,检查是否是有其他性能上的
负面效果后应用。
    
    buffer busy waits ,减少buffer lock争用的方法,解决办法总结:
    
    1、 减少select/select引发的read by other session等待的最好办法是通过SQL的最优化利用最少的I.O获得需要的结果,如果通过这个操作
    也不能解决问题,就需要检查SGA(高速缓冲区)大小适当与否。
    
    2、 select/update 引发的read by other session等待与select/select 引起的read by other session等待的解决办法相同。
    
    3、 insert/insert引发的buffer busy waits等待,通过使用适当的段空间管理方法得以解决,oracle 9i以上版本推荐使用ASSM,oracle8i
    则合理设定FREELISTS值,与事务量相比FREELISTS值过小时,buffer lock引起的争用广泛出现。光靠FREELISTS值不能解决问题,调高
    _bump_highwaer_mark_count隐含参数数值也是有帮助的。对于这个隐含参数在HW锁争用相关的等待事件上仔细讨论。
    
    4、update/update引发的buffer busy waits等待,可以通过采用避免对相同块同时执行update的方法得以解决,创建update形式考虑周全
    的最优partitioning将成为最好的解决办法,通过取高PCTFREE使用较小的块(9i开始可能),可以将块分散,因此能减少buffer lock争用。
    但是如上述测试结果,必须通过测试检验是否有负面影响。
    
    
    
    
    
    

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

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

注册时间:2008-01-08

  • 博文量
    69
  • 访问量
    117238