ON
コミットされたスナップショット分離を読み取り、データベースの分離を許可しました。まだデッドロック エラーが発生します。私は何が起こっているのかを知っていると確信しています...
- 最初のトランザクションは、トランザクションの開始時にシーケンス番号を取得します。
- 2 番目のトランザクションは、トランザクションの開始時に新しいシーケンス番号を取得しますが、最初のトランザクションが既に取得した後です (2 番目のシーケンス番号は最初のシーケンス番号よりも新しい)。
- 2 番目のトランザクションは、最初に更新ステートメントに到達します。行のバージョン管理をチェックすると、最初のトランザクションがまだ更新されていないため、両方のトランザクションに先行するレコードが表示されます。行のシーケンス番号がコミットされた状態にあることがわかり、順調に進んでいます。
- 最初のトランザクションが順番に実行され、2 番目のトランザクションと同様に、コミットされた同じシーケンス番号が検出されます。コミットしようとすると、別のトランザクションがコミットしようとしているレコードを既に更新しており、それ自体をロールバックする必要があることがわかります。
これが私の質問です。このロールバックはトレースでデッドロックとして表示されますか?