buffer busy waits (热块儿争用)

官网解释:

    This wait indicates that there are some buffers in the buffer cache that multiple processes are attempting to access concurrently. Query V$WAITSTAT for the wait statistics for each class of buffer. Common buffer classes that have buffer busy waits include data block, segment header, undo headerand undo block.

Check the following V$SESSION_WAIT parameter columns:  

  • P1: File ID

  • P2: Block ID

  • P3: Class ID


解释:

    此等待表示缓冲区高速缓存中存在多个进程尝试同时访问的缓冲区。 查询V$WAITSTAT为每类缓冲区的等待统计信息。 具有缓冲区忙等待的公共缓冲区包括数据块,段头,撤销头和撤消块。

    这个等待事件的产生仅说明了一个会话在等待一个 Buffer(数据块) 

有两种情形是:
(1)当一个会话试图修改一个 Buffer,但这个 Buffer 正在被另一个会话修改时。
热块是典型的是资源争用,分析热块产生原因,才可对症下药:以下为热块发生的部位:
①表块②索引块,段头块( free list) ,undo 块等
(2)当一个会话需要读取一个 Buffer,而这个 Buffer 正在被另一个会话从磁盘读取到内存中时。
在 11g 的版本中,这种情况已经被独立出来,以 read by other session命名等待事件。
Buffer busy waits 等待事件常见于数据库中存在热块的时候,当多个用户频繁地读取或者修改同样的数据块时,这个等待事件就会产生。