しかし、下のMetalinkノートを呼んでみますと以外に易しくMutexのHolderを見付けられるということが分かります。
ノートID: 786507.1
題目: HOW TO FIND BLOCKING SESSION FOR MUTEX WAIT EVENT cursor: pin S wait on X
Metalink使用権限がない方たちのために簡略にスクリプトだけ紹介すれば次のようです(ノートの内容全体をCopy&Pasteするのは不法です)。
-- 64ビットシステムでは8の位、32ビットシステムでは4の位を取る
SELECT p2raw
,to_number(substr(to_char(rawtohex(p2raw)), 1, 8), 'XXXXXXXX') sid
FROM v$session
WHERE event = 'cursor: pin S wait on X';
P2RAW SID
---------------- ---
0000001F00000000 31
31は始めの8位0000001F値の10進数の値です。すなわち現在のHolderが31番のセッションという意味です。Maxgaugeのようにアクティブセッションのリストと待機イベントのリストを貯蔵しているモニタリングツールではHolderセッションを上のように手軽に見付けることができますね。
もちろんAWRでも同一に使用できます。
11gからはV$SESSION.BLOCKING_SESSIONにHolder情報が記録されます。ずいぶんよくなりました。
でも、本当の問題はHolderセッションを見付けた後からですよ。:)
No comments:
Post a Comment