分享方式:


SQL Server 的 Locks 物件

適用於:SQL Server

瞭解 Microsoft SQL Server 中的 SQLServer:Locks 物件,其提供有關個別資源類型上的 SQL Server 鎖定資訊。 鎖定發生於 SQL Server 資源上,例如交易期間讀取或修改的資料列,以避免不同交易同時使用資源。 例如,若某個交易將資料表內的資料列獨佔 (X) 鎖定,就沒有其他交易可修改該資料列,直到鎖定解除為止。 將鎖定減至最少可增加並行 (Concurrency),以改善效能。 您可同時監視 Locks 物件的多個執行個體,每個執行個體都代表一種資源類型的鎖定。

下表描述 SQL Server Locks 計數器。

SQL Server Locks 計數器 描述
Average Wait Time (ms) 造成等候的各個鎖定要求之平均等候時間 (以毫秒為單位)。
Average Wait Time Base 僅供內部使用。
Lock Requests/sec 鎖定系統管理員每秒要求的新鎖定和鎖定轉換數。
鎖定逾時 (timeout > 0)/秒 已逾時的每秒鎖定要求數,但不包括 NOWAIT 鎖定的要求。
Lock Timeouts/sec 已逾時的每秒鎖定要求數,包括 NOWAIT 鎖定的要求。
Lock Wait Time (ms) 最後一秒內的鎖定總等候時間 (以毫秒為單位)。
Lock Waits/sec 每秒需要呼叫者等候的鎖定要求次數。
Number of Deadlocks/sec 造成死結的每秒鎖定要求數。

SQL Server 可以鎖定這些資源。

項目 描述
_Total 所有鎖定的資訊。
AllocUnit 配置單位的鎖定。
應用程式 應用程式指定資源的鎖定。
Database 資料庫的鎖定,包括資料庫中的所有物件。
Extent 八頁連續群組的鎖定。
檔案 資料庫檔案的鎖定。
堆積/B 型樹狀結構 堆積或 B 型樹狀結構。 資料頁面堆積的鎖定,或是索引之 B 型樹狀結構的鎖定。
索引鍵 索引中之資料列的鎖定。
中繼資料 一項目錄資訊 (亦稱為中繼資料) 的鎖定。
Object 資料表、預存程序、檢視等 (包括所有資料和索引) 的鎖定。 物件可以是 中 sys.all_objects具有專案的任何專案。
OIB 適用於線上編製索引鎖定的鎖定資源 (特別是線上編製索引 LOB 追蹤資料表)。
頁面 資料庫中 8 KB 分頁的鎖定。
RID 資料庫識別碼。 堆積中單一資料列的鎖定。
RowGroup 適用於資料行存放區索引資料列群組的鎖定資源。
Xact 適用於交易的鎖定資源。

注意

檔使用一般參考索引的 B 型樹狀結構一詞。 在數據列存放區索引中,資料庫引擎 會實作 B+ 樹狀結構。 這不適用於記憶體優化數據表上的數據行存放區索引或索引。 如需詳細資訊,請參閱 SQL Server 和 Azure SQL 索引架構和設計指南

範例

您可以使用 sys.dm_os_performance_counters 動態管理檢視的 T-SQL 查詢,開始探索此物件中的查詢效能計數器:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';