事實: SQL Server 2005 及之前版本,鎖升級直接從行鎖升級為表鎖,不經過頁鎖。
ALTER TABLE <table_name> SET (LOCK_ESCALATION = <option>);
選項:
TABLE(預設):直接從行鎖升級為表鎖。AUTO:若資料表有分區,升級為分區鎖(HoBT 鎖),不再進一步升級為表鎖。DISABLE:停用鎖升級(但不禁止表鎖,如 SERIALIZABLE 隔離掃描仍需表鎖)。早期測試發現 AUTO(分區鎖升級)在某些工作負載下更容易導致死結。同樣,啟用 TF 1211/1224 或設定 AUTO 都需謹慎測試。
ALTER TABLE ... SET (LOCK_ESCALATION ...)