行単位のロックを多数を行うより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