Oracle 等待事件 gc cr block direct read 官方解释,作用,如何使用及优化方法

本站中文解释

Oracle事件gc cr block direct read是一个具有特殊用途的回收锁事件。最常用的情况是在十进制‘DML’操作中,当一个Session试图读取一个包含行锁的行时,处理器将请求一个存储缓冲事件,如果该事件可以被granted,它将继续,如果该事件受阻,则session必须要再次申请一次;直到能够获得。这种事件可以被称为gc cr block direct read,因为它们的执行延迟了CPU的执行过程,这个事件可由应用程序编写程序来处理,但是这种操作变得复杂和耗时。在 GC CR 阻塞事件处理上,Oracle会允许一个session直接读取存储映射文件缓冲,这样可以将所需访问行条目锁定,以便session不必争夺行锁。

Oracle事件gc cr block direct read主要应用于DML操作,其中一个session试图读取一个行锁定的行时会发生,它用来提高数据库处理器的效率,减少DML操作的等待时间,由于它是一种高级功能,只有在DML操作特殊情况下才会使用,并且只适用于一些特殊的应用程序,可以提高数据库的处理速度。

gc cr block direct read由一个Session发起,当它试图读取一个行锁定的行时,如果获得这个锁,则该请求会成功,并且SQL执行步骤会继续;但是如果没有被grant,则该请求会失败,为了避免它的重试,Oracle会自动进入一次block direct read状态,仅当请求被grant时,传回给Session,它才能读回数据。

这个事件可以减少DML操作的等待时间,并避免多个Session间的行锁等待竞争,但在使用这种高级功能前,必须要有足够的数据缓存空间,同时它也要求数据库系统有足够的执行次数;如果这两个条件都具备,那么gc cr block direct read时间会大大减少。

可以将gc cr block direct read事件看作是一个高级功能,它可以提升DML操作的处理效率,减少操作的等待时间,同时也是保护数据内容和其他Session对数据访问的权限管理的有力方式。

官方英文解释

This event indicates that the requested consistent read (CR) buffer was transferred from another instance in the cluster, and the buffer was directly read from the remote cache utilizing the RDMA protocol.

Wait Time: The wait time is the actual time it took to receive the requested buffer.

Parameter Description

file#

See “file#”

block#

See “block#”

class#

See “class”


数据运维技术 » Oracle 等待事件 gc cr block direct read 官方解释,作用,如何使用及优化方法