ロックエスカレーション


行単位のロックを多数を行うより1つのテーブルロックを行ったほうが性能が向上することがある。
そのかわり、同時実行の競合が行われる可能性が向上する。


SQLServerではこのロックエスカレーションがデフォルト有効になっているが
以下の方法でロックエスカレーションを行わないように変更することもできる


ロック エスカレーションを禁止する

ALTER TABLE テーブル名
 SET ( LOCK_ESCALATION = DISABLE )


ロックエスカレーションの設定はsys.tablesで確認できる

SELECT
      NAME,
      LOCK_ESCALATION,
      LOCK_ESCALATION_DESC
FROM SYS.TABLES


LOCK_ESCALATION、LOCK_ESCALATION_DESCの説明は以下の通り
0 = TABLE
1 = DISABLE
2 = AUTO



動作確認環境:SQL Server 2008