Oracle中的PR Enqueue 队列锁
PR即process creation队列锁enqueue lock ,该 PR队列锁在当启动/创建Oracle后台进程,MTS进程(dispatchers),或parallel slave进程时被排他持有exclusive mode。
为了创建上述这些进程时会需要对SGA内存内数据结构的更新,这些进程启动后又会去读取SGA以便了解其自身具体的职责。 由于需要对SGA的更新,则需要将该操作与enqueue 队列相同步。
如何调优PR enqueue lock队列锁
一般而言该enqueue lock不应当存在争用。 若确实出现了争用则一般说明是MTS 或parallel slave进程生成的速度有些太快了(并不正常)。在此种情况下调整应用或实例参数来保证不要那么快的产生上述进程,一个数据库实例正常情况下用不着频繁的关闭和打开这些进程。
ID1/ ID2的含义
一般情况下这里的id1 和 id2 总是0 。
相关BUG
Bugs 1. Bug 1889323 documents a possible problem with this enqueue when running under RAC
Comment