SQL Serverのデッドロックに関するすべてのドキュメントでは、操作1がリソースAをロックし、次にリソースBにアクセスしようとし、操作2がリソースBをロックしてリソースAにアクセスしようとします選択/更新または複数選択間のSQL Serverデッドロック
しかし私は頻繁に選択と更新の間、または複数の選択間でデッドロックを見ます。私はデッドロックトレース出力の細かい点のいくつかがかなり侵入不可能であることを知っていますが、私は実際には2つの単一の操作の間にデッドロックを引き起こす原因を理解したいと思います。確かにselectに読み取りロックがある場合、更新は排他ロックを取得する前に待機する必要がありますか?
これはSQL Server 2005では起こっていますが、これは違いがないと思います。
私は分離レベルについて理解していますが、上記のデッドロックはselectを非コミットにすることで解決できますが、なぜ更新が読み込みコミットを使用してそのデッドロックで終了するのはなぜですか? –