SQLSERVERで、大量データを更新する場合に、 行ロックのはずなのにテーブルロックになる場合がある。 BOOK ONLINEによると、 ロックのエスカレーションとは、粒度の小さい多数のロックを変換して、 粒度が大きい少数のロックにする処理です。 この処理により、同時実行の競合が発生する確率は高くなりますが、システムのオーバーヘッドは減少します。 ロックのエスカレーションは、次のいずれかの時点で開始されます。 * 1 つの Transact-SQL ステートメントが単独のテーブルまたはインデックスに対して、少なくとも 5,000 個のロックを獲得したとき。 * データベース エンジンのインスタンスのロック数がメモリまたは構成のしきい値を超えたとき。 ということみたいです。 5000件以上の更新があるトランザクションは5000件単位でトランザクションを分けろってことか・・・ SQLSERV