Oracle 等待事件 Enqueues:SR,SynchronizedReplication 官方解释,作用,如何使用及优化方法
本站中文解释
Oracle事件”Enqueues: SR”是Oracle一种最常见的预定模式。它允许两个Oracle会话之间互相同步执行特定的任务,也就是说,在两个会话之间同步排序、等候和锁定的工作。它的出现主要是为了解决多会话共享数据资源的问题,使访问同步,比如记录一致性信息、处理事务并发而不造成同步冲突。
Enqueues: SR的全称是Synchronized Replication,它由两个部分组成,一个是等待者单元(Waiter),用来将等待变成按序排列,另一个是持有者单元(Holder),用来保证给等待者以某种优先级顺序来发放资源。它和其他常见的Enqueues有所不同,没有逻辑锁,而是把当前的所有的Enqueue的等待者放入队列,当Holder释放了锁后,根据优先级,等待者依次被释放及获取锁,从而实现等待者的可控制同步。
Enqueues: SR首先是从11G开始推出,从而支持多租户架构,当多个服务器之上都存在,或者位于网络上的多个机器同时访问某一个数据库时,就需要用到这一功能。Enqueues: SR为这种情况下的多个客户端提供了一种同步服务,使用它可以保证对锁的正确控制和访问时的正确顺序。
另外,Enqueues: SR的运行时,也需要不断的维护、调整和更新,数据库服务器还需要实时的检测这些变化,以确保及时更新数据并正确使用资源。
考虑到Enqueues: SR可以实现多会话数据库访问的同步,使得它们可以高效率地处理大量数据,因此对Oracle数据库的性能提升有重要的贡献。