考えられる1つの方法は、INIT.ORAを増やすことです。 distributed_lock_timeoutのパラメーター より大きな値に。これにより、v$lockを監視する時間が長くなります。 ロックがより長く続くのでテーブル。
これを自動化するには、次のいずれかを実行できます
-
v$lockの値をログに記録するSQLジョブを5〜10秒ごとに実行します または、sandosが上記でテーブルに与えたクエリを分析して、ロックの原因となっているセッションを確認します。 -
STATSPACKを実行します またはAWR報告する。ロックされたセッションは経過時間が長く表示されるため、識別できます。
v$session さらに3つの列がありますblocking_instance, blocking_session, blocking_session_status 上記のクエリに追加して、ロックされているものの画像を提供できます。