共用方式為


sys.dm_tran_session_transactions (Transact-SQL)

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics 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 Database [Basic][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針對在該會話下執行的每個交易顯示一個數據列。

下一步