通常、大規模な SQL Server 2008 テーブルは、SNAPSHOT ISOLATION トランザクションを使用して (比較的) 小さなチャンクで更新されます。チャンクがオーバーラップしないため、スナップショットはこれらの更新に非常に適しています。これらの更新は、長時間実行される単一の操作ではなく、トランザクションによってグループ化された多くの小さな 1 行の挿入/更新です。
優先度の低いトランザクションで、現在ロックされていないすべての行を更新したいと考えています。この動作を取得する方法を知っている人はいますか? 別の SNAPSHOT ISOLATION トランザクションは、行が衝突するとすぐに失敗しますか? それとも、失敗する前に可能な限りすべてを更新しますか?
try SET DEADLOCK_PRIORITY LOW
-catch は役に立ちますか? おそらく、WHERE
更新されていない行のみを対象とする a を使用した再試行ループでしょうか?