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
會從內部鎖定管理員數據結構填入,因此維護這項資訊並不會增加定期處理的額外負荷。 具體化檢視需要存取鎖定管理員內部數據結構。 這可能會對伺服器的一般處理產生次要影響。 這些效果應該無法察覺,而且應該只會影響大量使用的資源。 由於此檢視中的數據會對應至即時鎖定管理員狀態,因此數據可以隨時變更,而且數據列會在取得和釋放鎖定時新增和移除。 查詢此檢視的應用程式可能會因為保護鎖定管理員結構的完整性而遇到無法預測的效能。 此檢視沒有歷程記錄資訊。
只有在所有資源群組數據行都相等時,兩個要求才會在相同的資源上運作。
您可以使用下列工具來控制讀取作業的鎖定:
設定 TRANSACTION ISOLATION LEVEL 以指定工作階段的鎖定層級。 如需詳細資訊,請參閱 SET TRANSACTION ISOLATION LEVEL (Transact-SQL)。
鎖定數據表提示,以指定FROM子句中數據表個別參考的鎖定層級。 如需語法和限制,請參閱數據表提示(Transact-SQL)。
在一個 session_id
下執行的資源可以有多個授與鎖定。 在一個會話下執行的不同實體可以各自擁有相同資源的鎖定,而且資訊會顯示在 request_owner_type
所sys.dm_tran_locks
傳回的 和 request_owner_id
數據行中。 如果有多個相同 request_owner_type
實例存在,則 request_owner_id
數據行會用來區分每個實例。 對於分散式交易, request_owner_type
和數據 request_owner_guid
行會顯示不同的實體資訊。
例如,會話 S1 在 上 Table1
擁有共享鎖定;而交易 T1 則是在會話 S1 下執行,也會在 上 Table1
擁有共用鎖定。 在此情況下, resource_description
所 sys.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_description 是 XACT 資源。- 資源相關聯的實體標識碼: resource_associated_entity_id 是0。案例 2 (等候者) - 資源類型: XACT 。- 資源描述:當要求等候 TID 鎖定時, resource_description 是 XACT 資源後面接著基礎 KEY 或 RID 資源。- 資源相關聯的實體標識碼: 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 = O 、index_id 或 stats_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
B. 將會話資訊連結至作業系統線程
下列範例會傳回與 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