我们先来看看 library cache: mutex X 。 是个什么东西
The library cache mutex is acquired for similar purposes that the library cache latches were acquired in prior versions of Oracle. In 10g, mutexes were
introduced for certain operations in the library cache. Starting with 11g, the library cache latches were replaced by mutexes, hence this new wait event. -
----摘自metalink [ID 727400.1]
library cahce 互斥需要的目的;类似于10g中library cache lacthes的目的。在10g中,mutexes 迎来说明library cache中的某些操作。
在11G中,libary cache latches 被mulexes替换。
同时oracle也给出了追踪的办法。
Systemwide Waits:
At a systemwide level, there are two views which will help diagnose this wait:
GV$MUTEX_SLEEP (or V$MUTEX_SLEEPS for non-RAC)
and GV$MUTEX_SLEEP_HISTORY (or V$MUTEX_SLEEP_HISTORY for non-RAC)
These views track the instance wide usage of mutexes since instance startup. Since these views show values that are total values since startup, they are
most meaningful when you obtain the difference in values during a short time interval when there was problem. The easiest way to see this information is
through an AWR or statspack report in the "Mutex Sleep Summary" section.
Finding Blockers:
You can see the P2 value in V$MUTEX_SLEEP_HISTORY along with the "REQUESTING_SESSION". You may find a pattern where one session commonly blocks others -
this would lead you to obtain a SQL trace of the blocking session to try and get more information about what its doing.