【Best Practices】cursor: pin S wait on X等待事件模拟

1  Cursor: pin S 等待事件描述 Oracle10g中引用的mutexes机制一定程度的替代了library cache pin,其结构更简单,get&set的原子操作更快捷。 它相当于,每个child cursor下面都有一个mutexes这样的简单内存结构,当有session要执行该SQL而需要pin cursor操作的时候,session只需要以shared模式set这个内存位+1,表示session获得该mutex的shared mode lock.可以有很多session同时具有这个mutex的shared mode lock;但在同一时间,只能有一个session在操作这个mutext +1或者-1。+1 -1的操作是排它性的原子操作。如果因为session并行太多,而导致某个session在等待其他session的mutext +1/-1操作,则该session要等待cursor: pin S等待事件。 在10.2.0.1.0版本中,默认没有启用mutexes。因此不会产出cursor: pin s的等待,只会产生library cache pin的等待事件。 参考OTN的解释: cursor: pin SA session waits on this event when it wants to … [Read more...]