【SQLServer】ロックのエスカレーション防止

SQL Server 2008~は、テーブル単位にロックのエスカレーションを無効化できる。

ALTER TABLE dbo.T1

    SET ( LOCK_ESCALATION = DISABLE )
LOCK_ESCALATION 説明
0 = TABLE テーブルレベルの粒度でエスカレーション(既定値)
1 = DISABLE ほとんどの場合でロックエスカレーションを禁止
2 = AUTO テーブルスキーマに適したロックエスカレーションの粒度を選択

参考:
ALTER TABLE (Transact-SQL)



テーブルの LOCK_ESCALATION のオプションを確認する。

SELECT 
     object_id
    ,name
    ,lock_escalation
    ,lock_escalation_desc
FROM
    sys.tables

参考:
sys.tables (Transact-SQL)