トランザクションの同時実行性を低下させる原因の一因としてロックの競合によるブロッキングとデッドロックの発生があります。 これらの事象は瞬間で発生するため、事前に後追いをできる仕組みを考えておかないと、どのような要因で発生したかを確認することが難しいです。 今回の投稿ではブロッキングとデッドロックの発生状況をあとから確認できるようにするための設定をまとめてみたいと思います。 ■ブロッキングを確認するための設定 ブロッキングは互換性のないロックが競合を起こした場合に発生します。 ロックの互換性 (データベース エンジン) 以下のような処理を複数のセッションを使用して、トラン A → トラン B の順番で実行したとします。 更新中のレコードには排他ロック (X) がかかります。 この状態で共有ロック (S) が取得される検索をした場合、排他ロックと共有ロックには競合しますので、トラン B でトラ
![ブロッキングとデッドロックを後追い確認する方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/dc6041deee2e669a4811ae37360475d338480954/height=288;version=1;width=512/https%3A%2F%2Fengineermemo.wordpress.com%2Fwp-content%2Fuploads%2F2012%2F08%2Fimage_thumb130.png)