Oracle 等待事件 gc current block congested 官方解释,作用,如何使用及优化方法
本站中文解释
Oracle事件gc current block congested是一个表示长时间锁定块的事件。当任务试图从一个缓冲池中获取一个块时,它会检查这个块是否被锁定。若已被锁定,则将发生gc current block congested事件。
gc current block congested事件可能会出现在一个繁忙的服务器上,由于它“排查”的意思是,数据库计算机上方的其他任务把database blocks锁定了很久或这个block可能被某个会话锁定了很久,所以这时候gc current block congested之类的事件就发生了。 这种事件的发生可能是由于并发应用的增长引入了一些脏数据,增加了获取内核block的请求数,从而导致脏数据读取和穿行数据锁表中没有被释放。
当遇到gc current block congested事件时,特别是在并发应用中,可以使用优化器自动优化缓冲池策略来帮助缓解这种情况。此外,可以改变事务管理模式,根据实际情况调整并发量,还可以减少数据库连接的会话数,或者可以改变表的锁定模式,减少锁定持续时间。
除此之外,可以对对长时间锁定blocks的session进行故障诊断,并终止长时间锁定blocks的会话。可以使用专业的数据库监督系统以及其他一些SQL报告,来定期扫描这些锁定,以确保数据库性能持续最佳。
总之,gc current block congested事件表示内核block被长时间锁定,可以通过重新调整实际情况来缓解事件的发生,保证数据库的性能持续地处于最佳状态。
官方英文解释
This event indicates that the requested current buffer was transferred from another instance in the cluster, but the request was queued at the serving instance for too long.
This could happen when the GCS server processes (LMS) are very busy due to having a high volume of incoming Cache Fusion requests. Increasing the GCS server processes (GCS_SERVER_PROCESSES
) is usually the remedy to alleviate congestion for the GCS server processes.
Wait Time: The wait time is the actual time it took to receive the requested buffer.
Parameter | Description |
---|---|
file# |
See “file#” |
block# |
See “block#” |
id# |
Block class and global access mode held and requested |
See Also:
“GCS_SERVER_PROCESSES”