SNAPSHOTアイソレーションを使用して、ロック、ブロックまたはダーティ/ファントムの読み取りを行わずにデータを一貫して読み取る問題はありますか?SerializableとSnapshotアイソレーションを同時に使用することの影響
ブロックされずに一貫性のあるデータを読み取ったり、更新をブロックするためには、読者(読み取り専用:Webデータ同期、リアルタイム監視ビューなど)が必要です。 SNAPSHOTをすべて使用していましたが、一貫性の失敗が多すぎて更新プロセスをSERIALIZABLEに切り替えました。
私はこれまでに読んだことがありますが、異なる分離レベルを同時に使用した場合の影響については完全に明確ではありません。私はlock compatibility matrixを見て、様々な情報を読んだ。大丈夫だと思いますが、大きな落とし穴について実践的な経験を積んだ人々からの賢明な指導に感謝します。
SERIALIZABLEトランザクションの書き込み中に、読者にスナップショット分離を使用する際に問題はありますか? SERIALIZABLEトランザクションをブロックする状況はありますか? SNAPSHOTとREAD COMMITTED(READ_COMMITTED_SNAPSHOT ON)を使用する利点はありますか?
おかげで、大幅SNAPSHOT分離レベルの下で行わ
ありがとうございます! SNAPSHOT分離の読み取りによってSERIALIZABLEトランザクションがブロックされる状況がありますか? (最初はNOLOCKヒントを使用すると思っていましたが、SNAPSHOTのほうがリスクが高いという解説を読んでください) – mos
SNAPSHOTトランザクションが書き込みを行う場合、SERIALIZABLEトランザクションを含むすべてのトランザクションをブロックできます。 SNAPSHOTトランザクションが厳密に読み取ると、* locks *の他のトランザクションはブロックされません。他のタイプのリソース競合(ロックされていないものにブロックする)がありますが、これはメモリーの消耗や通常の操作ではない極端なケースです。いずれにしても、SNAPSHOTの読み込みは、あなたの最善の選択肢です。 –