一、原理
gc buffer busy acquire/release 往往是 gc current block busy的衍生产品, 当同一实例内的多个进程并发地访问同一个数据块时 ,首先发起的进程 将进入 gc current block busy的等待 ,而在 buffer waiter list 上的后续进程 会陷入gc buffer busy acquire/release 等待(A user on the same instance has started a remote operation on thesame resource and the request has not completed yet or the block was requestedby another node and the block has not been released by the local instance whenthe new local access was made), 这里存在一个排队效应, 即 gc current block busy是缓慢的,那么在 排队的gc buffer busy acquire/release就会更慢:
Pin time = (timeto read the block into cache) + (time to modify/process the buffer)
Busy time =(average pin time) * (number of interested users waiting ahead of me)
不局限于current block (reference AWR Avg global cache current block flush time(ms)), cr block(Avg global cache cr block flush time (ms)) 也存在flush time。
可以通过设置_cr_server_log_flush to false(LMSare/is wai

本文深入探讨了Oracle数据库中GC Buffer Busy等待事件的原理,包括其与GC Current Block Busy的关系以及在高并发场景下的表现。文章通过具体案例分析了在RAC环境下并发插入导致的问题,并指出Redo flush速度对GC Buffer Busy的影响。同时,提到了_LCR_SERVER_LOG_FLUSH参数的作用及其局限性。
最低0.47元/天 解锁文章
1688

被折叠的 条评论
为什么被折叠?



