Buffer busy waits

Buffer busy waits 等待事件表示当前在等待中的会话想操作的buffer 正在被别的会话占有使用或正在被别的会话读入到buffer中。
所以要等待别的会话使用完后释放这个buffer。

产生这个等待事件的原因很多。我就挑二个主要和常见的原因讲述我的见解。

第一种
数据块在buffer中,被其它会话占有进行DML操作,导致后面的会话大量buffer busy waits等待。

解决办法
1.减少每一个块的row数。
a.修改pctfree参数.
重建对象,把pctfree参数值增加,
注:增加后与pctused的差不要太近,如果这个差太小会造成free_list的竟争。
如把pctfree设为49 pctused为50,则只要稍微删除一点空间,块的空闲空间大于49%,系统就会认为这个块可用而把这个块挂到free_list
上去。只要稍微增加一点数据,块的空闲空间只剩到了49%,系统又会认为这个块没有空闲空间进行新数据插入,又要把这个块从free_list上摘下来。频繁操作会导致free_list竟争。
b.ALTER TABLE table_name MINIMIZE RECORDS_PER_BLOCK;
2.在oracle 9i以后,支持多种块大小的表空间。所以可以选择先建小块的表空间,并把相关对象建到新建小块表空间中。
第二种在数据字典管理表空间中
是对数据段头的Buffer busy waits.
主要原因是段头进行HWM操作或Free_list操作或对区间图操作过频繁。
解决办法
1.增加free_list or free groups.
2.确认pctfree and pctused两者的和不能太大.
3.存储参数 next extent 不要太小.以致extent size过小,数量过大,对extent map操作过频。

[@more@]

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

转载于:http://blog.itpub.net/7248175/viewspace-915991/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值