Share via


動態鎖定

使用像資料列鎖定等低層級鎖定,可藉由降低兩個交易同時要求相同片段的資料鎖定之可能性來增加並行。使用低層級鎖定也會增加鎖定的數目以及需要管理鎖定的資源。使用高層級的資料表或頁面鎖定可降低負擔,但必須花費降低並行的成本。

顯示成本與資料粒度之比較的圖表

Microsoft SQL Server Database Engine 使用動態鎖定策略來決定最具成本效益的鎖定。Database Engine 在執行查詢時會依照結構描述與查詢的特性,自動決定最合適的鎖定類型。例如,為了降低鎖定的負擔,最佳化工具在進行索引掃描時可能會選擇頁面層級的鎖定。

動態鎖定具有下列優點:

  • 簡化資料庫的管理。資料庫管理員並不需要調整鎖定擴大的臨界值。

  • 提昇效能。Database Engine 藉由使用適合於工作的鎖定,將系統的負擔降至最低。

  • 應用程式開發人員可以專注於開發。Database Engine 會自動調整鎖定。

在 SQL Server 2008 中,隨著 LOCK_ESCALATION 選項的引進,鎖定擴大的行為也已經變更。如需詳細資訊,請參閱<ALTER TABLE>的 LOCK_ESCALATION 選項。