考えられる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
上記のクエリに追加して、ロックされているものの画像を提供できます。