buffer busy waits:读不堵塞写,写堵塞读。
一个会话读、另个会话写这个buffer,写的同时又有个会话读这个buffer产生等待buffer busy waits
oracle修改一个buffer的步骤。

减少2-7步骤的时间可以减少buffer busy waits。
期间主要工作就是 生成redo和修改buffer中的内容。修改buffer内容是调用系统函数memcpy完成,几乎没优化空间。
主要是在生成redo上。
生成redo简单流程是:
在pga中记录后映象数据,传到共享池,然后传到log buffer中,如果log buffer没空间,进程会先等LGWR刷新
log buffer中的空间,腾出空间后才能继续(此时等待为log buffer space)。
产生redo遭遇log buffer没空间的情况有时候还是存在的,产生redo花费时间大大增加。
因此, 保证log buffer有空间可以减少buffer pin锁的持有时间。
Log buffer没空间的原因是产生的redo太多或者LGWR写的太慢。redo过多为应用问题,无法改变。
LGWR写的慢是IO慢,加快IO写的性能,可以提高log buffer中空闲空间比例,可以增加redo产生的速度,
减少独占buffer pin锁的持有时间。
所以把redo放在更快的存储设备上,可以减少buffer busy waits时间。
buffer busy wait
1.抬高高水位线
2.buffer busy wait主要由写堵塞写或者写堵塞读,减少写操作的持有buffer pin(X独占)锁的时间,整体上buffer busy wait会下来。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69980685/viewspace-3002151/ ,如需转载,请注明出处,否则将追究法律责任。