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

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

傳回 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、ALLOCATION_UNIT 或 XACT。
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 資料庫基本、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
ALLOCATION_UNIT 表示一組相關的頁面,例如索引分割區。 每個配置單位都包含單一索引配置對應 (IAM) 鏈結。 配置單位識別碼。 這個值會對應至 sys.allocation_units.allocation_unit_id
XACT XACT 資源。 與 優化鎖定 相關。 有兩種案例:

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

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

注意

SQL Server 文件通常會使用「B 型樹狀結構」一詞來指稱索引。 在資料列存放區索引中,SQL Server 會實作 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