共用方式為


sys.dm_tran_locks (Transact-SQL) (機器翻譯)

適用於:Microsoft Fabric 中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) 倉儲

傳回 SQL Server 中目前作用中鎖定管理員資源的相關信息。 每個數據列代表已授與或正在等候授與之鎖定的鎖定管理員目前作用中要求。

結果集中的數據行分成兩個主要群組:資源和要求。 資源群組描述正在提出鎖定要求的資源,而要求群組則描述鎖定要求。

注意

若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用 名稱 sys.dm_pdw_nodes_tran_locks。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

資料行名稱 資料類型 描述
resource_type nvarchar(60) 表示資源類型。 此值可以是:

DATABASE

FILE

OBJECT

PAGE

KEY

EXTENT

RID (資料列識別元)

APPLICATION

METADATA

HOBT (堆積或 B 型樹狀結構)

ALLOCATION_UNIT

XACT (交易)

OIB (在串列引組建 )

ROW_GROUP
resource_subtype nvarchar(60) 表示的 resource_type子類型。 取得子類型鎖定而不持有父類型的非子類型鎖定在技術上有效。 不同的子類型不會彼此衝突,或與非子類型的父類型衝突。 並非所有資源類型都有子類型。
resource_database_id int 此資源範圍所在的資料庫標識碼。 鎖定管理員處理的所有資源都會以資料庫標識碼來限定範圍。
resource_description nvarchar(256) 只包含其他資源資料行無法使用之資訊的資源描述。
resource_associated_entity_id bigint 與資源相關聯之資料庫中實體的標識碼。 視資源類型而定,這可以是對象標識碼、HOBT標識碼或配置單位標識符。
resource_lock_partition Int 分割鎖定資源的鎖定分割區標識碼。 非分割鎖定資源的值是 0
request_mode nvarchar(60) 要求的模式。 對於授與的要求,這是授與模式;對於等候的要求,這是所要求的模式。

NULL = 沒有授與資源的存取權。 做為佔位元。

Sch-S (架構穩定性) = 確保架構專案,例如數據表或索引,不會卸除,而任何會話都持有架構元素的架構穩定性鎖定。

Sch-M (架構修改) = 必須由任何想要變更指定資源架構的工作階段所儲存。 確保沒有其他工作階段參考指示的物件。

S (共用) = 持有會話已獲授與資源的共用存取權。

U (Update) = 指出在最終可能更新的資源上取得的更新鎖定。 它用來防止一種常見的鎖死形式,這種鎖死會在多個工作階段鎖定資源以供日後可能的更新時發生。

X (獨佔) = 保存會話已獲授與資源的獨佔存取權。

IS (意圖共用) = 表示打算將 S 鎖定放在鎖定階層中的某些次級資源上。

IU (意圖更新) = 表示打算將 U 鎖定放在鎖定階層中的某些次級資源上。

IX (意圖獨佔) = 表示打算在鎖定階層中的某些次級資源上放置 X 鎖定。

SIU (共用意圖更新) = 指出共用存取資源,意圖取得鎖定階層中次級資源的更新鎖定。

SIX (共用意圖獨佔) = 指出共用存取資源,意圖取得鎖定階層中次級資源的獨佔鎖定。

UIX (更新意圖獨佔) = 指出鎖定階層中次級資源上取得獨佔鎖定之資源的更新鎖定保留。

BU = 大量作業使用。

RangeS_S (共用索引鍵範圍和共用資源鎖定) = 表示可串行化的範圍掃描。

RangeS_U (共用索引鍵範圍和更新資源鎖定) = 表示可串行化的更新掃描。

RangeI_N (插入索引鍵範圍和 Null 資源鎖定) = 在將新索引鍵插入索引之前,用來測試範圍。

RangeI_S = 索引鍵範圍轉換鎖定,由RangeI_N和 S 鎖定重疊所建立。

RangeI_U = 索引鍵範圍轉換鎖定,由重疊RangeI_N和 U 鎖定所建立。

RangeI_X = 索引鍵範圍轉換鎖定,由RangeI_N和 X 鎖定重疊所建立。

RangeX_S = 索引鍵範圍轉換鎖定,由重疊RangeI_N和RangeS_S所建立。 鎖定。

RangeX_U = 索引鍵範圍轉換鎖定,由重疊RangeI_N和RangeS_U鎖定所建立。

RangeX_X (獨佔索引鍵範圍和獨佔資源鎖定) = 這是更新某個範圍中的金鑰時所使用的轉換鎖定。
request_type nvarchar(60) 要求類型。 值為 LOCK。
request_status nvarchar(60) 此要求的目前狀態。 可能的值為 GRANTED、CONVERT、WAIT、LOW_PRIORITY_CONVERT、LOW_PRIORITY_WAIT或ABORT_BLOCKERS。 如需低優先順序等候和中止封鎖程式的詳細資訊,請參閱 ALTER INDEX (Transact-SQL)low_priority_lock_wait 一節。
request_reference_count smallint 傳回相同要求者要求此資源的大約次數。
request_lifetime int 僅供參考之用。 不支援。 我們無法保證未來的相容性。
request_session_id int session_id 目前擁有此要求。 擁有 session_id 可以變更分散式和系結交易。 的值 -2 表示要求屬於孤立的分散式交易。 的值 -3 表示要求屬於延遲的復原交易,例如,復原已延遲復原的交易,因為無法順利完成回復。
request_exec_context_id int 目前擁有此要求之進程的執行內容標識碼。
request_request_id int request_id 目前擁有此要求的處理程式(批次標識符)。 每次交易變更的作用中多重作用中結果集 (MARS) 連線時,這個值都會變更。
request_owner_type nvarchar(60) 擁有要求的實體類型。 鎖定管理員要求可以由各種實體所擁有。 可能的值包括:

TRANSACTION = 要求是由交易所擁有。

CURSOR = 要求是由數據指標所擁有。

SESSION = 要求是由使用者工作階段所擁有。

SHARED_TRANSACTION_WORKSPACE = 要求是由交易工作區的共用部分所擁有。

EXCLUSIVE_TRANSACTION_WORKSPACE = 要求是由交易工作區的獨佔部分所擁有。

NOTIFICATION_OBJECT = 要求是由內部 SQL Server 元件所擁有。 此元件已要求鎖定管理員在等候鎖定時通知它。 FileTable 功能是使用此值的元件。

注意: 在內部使用工作空間來保存已登記會話的鎖定。
request_owner_id bigint 此要求之特定擁有者的標識碼。

當交易是要求的擁有者時,這個值會包含交易標識符。

當 FileTable 是要求的擁有者時, request_owner_id 具有下列其中一個值:
request_owner_guid uniqueidentifier 此要求之特定擁有者的 GUID。 這個值只供分散式交易使用,其中值對應至該交易的 MS DTC GUID。
request_owner_lockspace_id nvarchar(32) 僅供參考之用。 不支援。 我們無法保證未來的相容性。 這個值代表要求者的鎖定空間標識碼。 lockspace 標識符會判斷兩個要求者是否彼此相容,而且可以在模式中授與鎖定,否則會彼此衝突。
lock_owner_address varbinary(8) 用來追蹤此要求之內部數據結構的記憶體位址。 這個數據行可以與 中的數據sys.dm_os_waiting_tasks行聯結resource_address
pdw_node_id int 適用於:Azure Synapse Analytics、Analytics Platform System (PDW)

此散發節點的標識碼。

權限

在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE 權限。

在 SQL Database [Basic][S0][S1] 服務目標,以及彈性集區中的資料庫,需要伺服器管理員帳戶、伺服器管理員帳戶、Microsoft Entra 管理員帳戶或 ##MS_ServerStateReader##伺服器角色的成員資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE 權限或 ##MS_ServerStateReader## 伺服器角色的成員資格。

SQL Server 2022 及更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。

備註

授與的要求狀態表示已將資源上的鎖定授與給要求者。 等候要求表示尚未授與要求。 資料行會傳 request_status 回下列等候要求類型:

  • 轉換要求狀態表示要求者已獲得資源要求,目前正在等候升級至要授與的初始要求。

  • 等候要求狀態表示要求者目前不會在資源上保留已授與的要求。

由於 sys.dm_tran_locks 會從內部鎖定管理員數據結構填入,因此維護這項資訊並不會增加定期處理的額外負荷。 具體化檢視需要存取鎖定管理員內部數據結構。 這可能會對伺服器的一般處理產生次要影響。 這些效果應該無法察覺,而且應該只會影響大量使用的資源。 由於此檢視中的數據會對應至即時鎖定管理員狀態,因此數據可以隨時變更,而且數據列會在取得和釋放鎖定時新增和移除。 查詢此檢視的應用程式可能會因為保護鎖定管理員結構的完整性而遇到無法預測的效能。 此檢視沒有歷程記錄資訊。

只有在所有資源群組數據行都相等時,兩個要求才會在相同的資源上運作。

您可以使用下列工具來控制讀取作業的鎖定:

在一個 session_id 下執行的資源可以有多個授與鎖定。 在一個會話下執行的不同實體可以各自擁有相同資源的鎖定,而且資訊會顯示在 request_owner_typesys.dm_tran_locks傳回的 和 request_owner_id 數據行中。 如果有多個相同 request_owner_type 實例存在,則 request_owner_id 數據行會用來區分每個實例。 對於分散式交易, request_owner_type 和數據 request_owner_guid 行會顯示不同的實體資訊。

例如,會話 S1 在 上 Table1擁有共享鎖定;而交易 T1 則是在會話 S1 下執行,也會在 上 Table1擁有共用鎖定。 在此情況下, resource_descriptionsys.dm_tran_locks 傳回的數據行會顯示相同資源的兩個實例。 數據 request_owner_type 行會將一個實例顯示為會話,另一個實例則顯示為交易。 此外,數據 resource_owner_id 行也有不同的值。

在一個會話下執行的多個數據指標不可區分,並視為一個實體。

與值無關 session_id 的分散式交易是孤立的交易,而且會 session_id 指派 的值 -2。 如需詳細資訊,請參閱 KILL (Transact-SQL)

鎖定

鎖定發生於 SQL Server 資源上,例如交易期間讀取或修改的資料列,以避免不同交易同時使用資源。 例如,若某個交易將資料表內的資料列獨佔 (X) 鎖定,就沒有其他交易可修改該資料列,直到鎖定解除為止。 將鎖定減至最少可增加並行 (Concurrency),以改善效能。

資源詳細資料

下表列出數據行中所 resource_associated_entity_id 代表的資源。

資源類型 資源描述 resource_associated_entity_id
DATABASE 表示資料庫。 不適用
FILE 表示資料庫檔案。 此檔案可以是數據或記錄檔。 不適用
OBJECT 表示資料庫中的物件。 這個物件可以是數據表、檢視表、預存程式、擴充預存程式,或任何具有物件標識符的物件。 物件識別碼
PAGE 表示數據檔中的單一頁面。 HoBt識別碼。 這個值會對應至 sys.partitions.hobt_id。 HoBt識別碼不一定可供PAGE資源使用,因為HoBt標識符是呼叫端可以提供的額外資訊,並非所有的呼叫端都可以提供這項資訊。
KEY 表示索引中的數據列。 HoBt識別碼。 這個值會對應至 sys.partitions.hobt_id
EXTENT 表示數據檔範圍。 範圍是八個連續頁面的群組。 不適用
RID 表示堆積中的實體數據列。 HoBt識別碼。 這個值會對應至 sys.partitions.hobt_id。 HoBt識別碼不一定可供 RID 資源使用,因為 HoBt 識別符是呼叫端可以提供的額外資訊,並非所有呼叫端都可以提供這項資訊。
APPLICATION 表示應用程式指定的資源。 不適用
METADATA 表示元數據資訊。 不適用
HOBT 表示堆積或 B 型樹狀結構。 這些是基本的存取路徑結構。 HoBt識別碼。 這個值會對應至 sys.partitions.hobt_id
OIB 代表在線索引 (re)build。 HoBt識別碼。 這個值會對應至 sys.partitions.hobt_id
ALLOCATION_UNIT 表示一組相關的頁面,例如索引分割區。 每個配置單位都包含單一索引配置對應 (IAM) 鏈結。 配置單位標識碼。 這個值會對應至 sys.allocation_units.allocation_unit_id
ROW_GROUP 表示數據行存放區數據列群組。
XACT 表示交易。 啟用優化鎖定發生。 有兩種案例:

案例 1 (擁有者)
- 資源類型XACT
- 資源描述:保留 TID 鎖定時, resource_descriptionXACT 資源。
- 資源相關聯的實體標識碼resource_associated_entity_id 是0。

案例 2 (等候者)
- 資源類型XACT
- 資源描述:當要求等候 TID 鎖定時, resource_descriptionXACT 資源後面接著基礎 KEYRID 資源。
- 資源相關聯的實體標識碼resource_associated_entity_id 是基礎 HoBt 識別符。

注意

文件通常會使用「B 型樹狀結構」一詞來指稱索引。 在資料列存放區索引中,資料庫引擎會實作 B+ 樹狀結構。 這不適用於資料行存放區索引或經記憶體最佳化的資料表。 如需詳細資訊,請參閱 SQL Server 和 Azure SQL 索引架構和設計指南

下表列出與每個資源類型相關聯的子類型。

ResourceSubType 同步
ALLOCATION_UNIT。BULK_OPERATION_PAGE 用於大量作業的預先配置頁面。
ALLOCATION_UNIT。PAGE_COUNT 延遲卸除作業期間的配置單位頁面計數統計數據。
資料庫。BULKOP_BACKUP_DB 具有大量作業的資料庫備份。
資料庫。BULKOP_BACKUP_LOG 具有大量作業的資料庫記錄備份。
資料庫。CHANGE_TRACKING_CLEANUP 變更追蹤清除工作。
資料庫。CT_DDL 資料庫和數據表層級變更追蹤 DDL 作業。
資料庫。CONVERSATION_PRIORITY Service Broker 交談優先順序作業,例如 CREATE BROKER PRIORITY。
資料庫。DDL 具有檔案群組作業的數據定義語言 (DDL) 作業,例如卸除。
資料庫。ENCRYPTION_SCAN TDE 加密同步處理。
資料庫。PLANGUIDE 規劃指南同步處理。
資料庫。RESOURCE_GOVERNOR_DDL 資源管理員作業的 DDL 作業,例如 ALTER RESOURCE POOL。
資料庫。收縮 資料庫壓縮作業。
資料庫。啟動 用於資料庫啟動同步處理。
檔。收縮 檔案壓縮作業。
HOBT。BULK_OPERATION 使用並行掃描進行堆積優化的大量載入作業,在這些隔離等級下:快照集、讀取未認可,以及使用數據列版本設定來認可讀取。
HOBT。INDEX_REORGANIZE 堆積或索引重組作業。
物件。編譯 預存程式編譯。
物件。INDEX_OPERATION 索引作業。
物件。UPDSTATS 數據表上的統計數據更新。
元數據。集會 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASSEMBLY_CLR_NAME 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASSEMBLY_TOKEN 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASYMMETRIC_KEY 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。審計 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AUDIT_ACTIONS 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AUDIT_SPECIFICATION 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AVAILABILITY_GROUP 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。證書 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CHILD_INSTANCE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。COMPRESSED_FRAGMENT 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。COMPRESSED_ROWSET 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSTATION_ENDPOINT_RECV 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSTATION_ENDPOINT_SEND 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSATION_GROUP 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSATION_PRIORITY 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。憑據 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CRYPTOGRAPHIC_PROVIDER 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DATA_SPACE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。資料庫 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DATABASE_PRINCIPAL 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_MIRRORING_SESSION 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_MIRRORING_WITNESS 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_PRINCIPAL_SID 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。端點 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ENDPOINT_WEBMETHOD 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。EXPR_COLUMN 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。EXPR_HASH 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_CATALOG 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_INDEX 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_STOPLIST 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INDEX_EXTENSION_SCHEME 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INDEXSTATS 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INSTANTIATED_TYPE_HASH 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。消息 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。METADATA_CACHE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PARTITION_FUNCTION 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PASSWORD_POLICY 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。權限 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE_HASH 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE_SCOPE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。QNAME 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。QNAME_HASH 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。REMOTE_SERVICE_BINDING 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。路線 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。圖式 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SECURITY_CACHE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SECURITY_DESCRIPTOR 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。序列 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVER_EVENT_SESSIONS 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVER_PRINCIPAL 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。服務 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_BROKER_GUID 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_CONTRACT 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_MESSAGE_TYPE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。統計 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SYMMETRIC_KEY 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。USER_TYPE 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_COLLECTION 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_COMPONENT 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_INDEX_QNAME 僅供參考之用。 不支援。 我們無法保證未來的相容性。

下表提供每個資源類型的數據行格式 resource_description

資源 格式 描述
DATABASE 不適用 數據行中 resource_database_id 已經有資料庫標識碼。
FILE <file_id> 此資源所表示之檔案的標識碼。
OBJECT <object_id> 這個資源所表示之對象的標識碼。 這個物件可以是中 sys.objects所列的任何物件,而不只是數據表。
PAGE <file_id>:<page_in_file> 表示此資源所代表頁面的檔案和頁面標識碼。
KEY <hash_value> 表示此資源所表示之數據列之索引鍵數據行的哈希。
EXTENT <file_id>:<page_in_files> 表示此資源所代表之範圍的檔案和頁面標識碼。 範圍標識碼與範圍中第一頁的頁面標識元相同。
RID <file_id>:<page_in_file>:<row_on_page> 代表此資源所表示之數據列的頁面標識碼和數據列標識碼。 如果相關聯的物件標識碼為 99,此資源代表 IAM 鏈結第一個 IAM 頁面上八個混合頁面位置之一。
APPLICATION <DbPrincipalId>:<up to 32 characters>:(<hash_value>) 表示用於界定此應用程式鎖定資源之資料庫主體的標識碼。 此外,也包含最多 32 個字元的資源字串,對應至此應用程式鎖定資源。 在某些情況下,由於無法再使用完整字串,因此只能顯示兩個字元。 此行為只會在復原過程中重新取得應用程式鎖定的資料庫復原時間發生。 哈希值代表對應至此應用程式鎖定資源之完整資源字串的哈希。
HOBT 不適用 HoBt 識別符會隨附為 resource_associated_entity_id
ALLOCATION_UNIT 不適用 設定單位識別碼會包含為 resource_associated_entity_id
XACT <dbid>:<XdesId low>:<XdesId high> TID (交易標識子) 資源。 啟用優化鎖定發生。
XACT KEY [XACT <dbid>:<XdesId low>:<XdesId High>] KEY (<hash_value>) 交易正在等候的基礎資源,具有索引KEY物件。 啟用優化鎖定發生。
XACT RID [XACT <dbid>:<XdesId low>:<XdesId High>] RID (<file_id>:<page_in_file>:<row_on_page>) 交易正在等候的基礎資源,其中包含堆積 RID 物件。 啟用優化鎖定發生。
元數據。集會 assembly_id = A 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASSEMBLY_CLR_NAME $qname_id = Q 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASSEMBLY_TOKEN assembly_id = A, $token_id 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ASSYMMETRIC_KEY asymmetric_key_id = A 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。審計 audit_id = A 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AUDIT_ACTIONS device_id = D, major_id = M 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AUDIT_SPECIFICATION audit_specification_id = A 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。AVAILABILITY_GROUP availability_group_id = A 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。證書 certificate_id = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CHILD_INSTANCE $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。COMPRESSED_FRAGMENT object_id = O , compressed_fragment_id = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。COMPRESSED_ROW object_id = O 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSTATION_ENDPOINT_RECV $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSTATION_ENDPOINT_SEND $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSATION_GROUP $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CONVERSATION_PRIORITY conversation_priority_id = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。憑據 credential_id = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。CRYPTOGRAPHIC_PROVIDER provider_id = P 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DATA_SPACE data_space_id = D 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。資料庫 database_id = D 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DATABASE_PRINCIPAL principal_id = P 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_MIRRORING_SESSION database_id = D 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_MIRRORING_WITNESS $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。DB_PRINCIPAL_SID $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。端點 endpoint_id = E 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。ENDPOINT_WEBMETHOD $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_CATALOG fulltext_catalog_id = F 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_INDEX object_id = O 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。EXPR_COLUMN object_id = O, column_id = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。EXPR_HASH object_id = O, $hash = H 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_CATALOG fulltext_catalog_id = F 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_INDEX object_id = O 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。FULLTEXT_STOPLIST fulltext_stoplist_id = F 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INDEX_EXTENSION_SCHEME index_extension_id = I 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INDEXSTATS object_id = Oindex_idstats_id = I 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。INSTANTIATED_TYPE_HASH user_type_id = U, hash = H 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。消息 message_id = M 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。METADATA_CACHE $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PARTITION_FUNCTION function_id = F 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PASSWORD_POLICY principal_id = P 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。權限 class = C 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE plan_guide_id = P 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE_HASH $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。PLAN_GUIDE_SCOPE scope_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。QNAME $qname_id = Q 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。QNAME_HASH $qname_scope_id = Q, $qname_hash = H 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。REMOTE_SERVICE_BINDING remote_service_binding_id = R 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。路線 route_id = R 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。圖式 schema_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SECURITY_CACHE $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SECURITY_DESCRIPTOR sd_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。序列 $seq_type = S, object_id = O 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。伺服器 server_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVER_EVENT_SESSIONS event_session_id = E 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVER_PRINCIPAL principal_id = P 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。服務 service_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_BROKER_GUID $hash = H1:H2:H3 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_CONTRACT service_contract_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SERVICE_MESSAGE_TYPE message_type_id = M 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。統計 object_id = O, stats_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。SYMMETRIC_KEY symmetric_key_id = S 僅供參考之用。 不支援。 我們無法保證未來的相容性。
元數據。USER_TYPE user_type_id = U 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_COLLECTION xml_collection_id = X 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_COMPONENT xml_component_id = X 僅供參考之用。 不支援。 我們無法保證未來的相容性。
METADATA.XML_INDEX_QNAME object_id = O, $qname_id = Q 僅供參考之用。 不支援。 我們無法保證未來的相容性。

範例

A. 搭配其他工具使用sys.dm_tran_locks

下列範例適用於另一個交易封鎖更新作業的案例。 藉由使用 sys.dm_tran_locks 和其他工具,會提供鎖定資源的相關信息。

USE tempdb;
GO

-- Create test table and index.
CREATE TABLE t_lock
    (
    c1 int, c2 int
    );
GO

CREATE INDEX t_lock_ci on t_lock(c1);
GO

-- Insert values into test table
INSERT INTO t_lock VALUES (1, 1);
INSERT INTO t_lock VALUES (2, 2);
INSERT INTO t_lock VALUES (3, 3);
INSERT INTO t_lock VALUES (4, 4);
INSERT INTO t_lock VALUES (5, 5);
INSERT INTO t_lock VALUES (6, 6);
GO

-- Session 1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

BEGIN TRAN
    SELECT c1
        FROM t_lock
        WITH(holdlock, rowlock);

-- Session 2
BEGIN TRAN
    UPDATE t_lock SET c1 = 10;

下列查詢會顯示鎖定資訊。 的值 <dbid> 應該取代為 database_id from sys.databases的 。

SELECT resource_type, resource_associated_entity_id,
    request_status, request_mode,request_session_id,
    resource_description
    FROM sys.dm_tran_locks
    WHERE resource_database_id = <dbid>;

下列查詢會使用 resource_associated_entity_id 先前的查詢傳回對象資訊。 當您連接到包含 物件的資料庫時,必須執行此查詢。

SELECT object_name(object_id), *
    FROM sys.partitions
    WHERE hobt_id=<resource_associated_entity_id> ;

下列查詢顯示封鎖資訊。

SELECT
    t1.resource_type,
    t1.resource_database_id,
    t1.resource_associated_entity_id,
    t1.request_mode,
    t1.request_session_id,
    t2.blocking_session_id
FROM sys.dm_tran_locks as t1
INNER JOIN sys.dm_os_waiting_tasks as t2
    ON t1.lock_owner_address = t2.resource_address;

復原交易來釋放資源。

-- Session 1
ROLLBACK;
GO

-- Session 2
ROLLBACK;
GO

下列範例會傳回與 Windows 線程標識元建立關聯的 session_id 資訊。 線程的效能可以在 Windows 效能監視器 中監視。 此查詢不會傳回 session_id 目前睡眠中的 。

SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
    ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO