sys.dm_tran_session_transactions (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回相關聯交易和會話的相互關聯資訊。

注意

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

資料行名稱 資料類型 描述
session_id int 執行交易的會話識別碼。
transaction_id bigint 交易的識別碼。
transaction_descriptor binary(8) 與用戶端驅動程式通訊時,SQL Server 所使用的交易識別碼。
enlist_count int 會話中處理交易的作用中要求數目。
is_user_transaction bit 1 = 交易是由使用者要求起始。

0 = 系統交易。
is_local bit 1 = 本機交易。

0 = 分散式交易或編列的系結會話交易。
is_enlisted bit 1 = 登記分散式交易。

0 = 不是已登記的分散式交易。
is_bound bit 1 = 交易透過系結會話在會話上作用中。

0 = 交易不是透過系結會話在會話上作用中。
open_transaction_count int 每個會話的開啟交易數目。
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 權限。

備註

透過系結會話和分散式交易,交易有可能在多個會話下執行。 在這種情況下,針對相同的 transaction_id 顯示多個資料列, sys.dm_tran_session_transactions 針對執行交易的每個會話顯示一個資料列。 由於記錄它們的方式差異, open_transaction_count 可能不符合 sys.dm_exec_sessionsopen_transaction_count

藉由使用多個作用中結果集在自動認可模式中執行多個要求(MARS),就可以在單一會話上有多個作用中交易。 在這種情況下,針對相同的 session_id 顯示多個資料列, sys.dm_tran_session_transactions 針對在該會話下執行的每個交易顯示一個資料列。

下一步