free buffer waits

可能的原因:
1.free buffer waits的意思是我们正在等待一个free buffer,但是在cache buffer里面没有可用的,因为很多脏块在cache里面
2.可能是buffer cache太小或者是dbwr进程写脏块太慢
3.dbwr不能跟上写的请求
4.checkpoint频率太快,可能是数据库活动比较频繁或者是redo log file 太小,因为日志切换会产生checkpoint
5.大量的排序和全表扫描修改块的速度大于DBWR写的速度
6.如果需要写到磁盘脏块的数量大于dbwr写的速度,这个等待将会发生


解决方法:
1.减少checkpoint的频率,增加redo log files 大小
2.检查buffer cache的大小,考虑增加buffer cache 大小
SELECT name,size_for_estimate,size_factor,estd_physical_reads FROM v$db_cache_advice
3.设置disk_asynch_io = true
4.如果不能使用异步I/O,考虑增加dbwr或者dbwr slaves

5.确保磁盘热点不存在,通过分散数据文件和磁盘控制器


--本文乃原创文章,请勿转载。如须转载请详细标明转载出处

你可能感兴趣的:(oracle,wait,events)