DBAtlas · データベース運用アトラス

enq: TX - row lock contention: 待機: 別トランザクションが保持する行レベルロックでセッションがブロックされている

Oracle

意味

セッションが、別トランザクションの保持する行ロックの解放を待っている。アプリケーションレベルの典型的なロック待機イベント。

原因

同じ行を更新しようとする同時トランザクション、長時間コミットされないトランザクション、インデックスのない外部キーによる広範なロック、または連番キーへの集中 (ホットブロック)。

対処方法

ブロッキングセッションとブロックされているセッションを特定する: SELECT * FROM v$session WHERE blocking_session IS NOT NULL; さらに v$lock と突き合わせる。長いトランザクションが根本原因ならコミット戦略を見直す。外部キー列にインデックスを作成する。ホット行は設計 (順序、ハッシュ) を再検討する。必要に応じてブロッキングセッションを終了させる。

DBAtlas で開く →

同じデータベースの他の項目