sys.dm_tran_session_transactions (Transact-SQL)

适用于SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

返回关联事务和会话的相关信息。

注意

若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_tran_session_transactions。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 说明
session_id int 正在运行事务的会话的 ID。
transaction_id bigint 事务的 ID。
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 数据库基本、S0S1 服务目标以及弹性池中的数据库、服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

注解

通过绑定会话和分布式事务,一个事务可以运行于多个会话中。 在这种情况下, sys.dm_tran_session_transactions 显示同 transaction_id一行的多个行,其中一行用于运行事务的每个会话。 由于记录它们的方式存在差异, open_transaction_count 因此可能与 sys.dm_exec_sessions.open_transaction_count.

通过使用多个活动的结果集 (MARS) 以自动提交模式执行多个请求,一个会话中可以有多个活动事务。 在这种情况下, sys.dm_tran_session_transactions 显示同 session_id一行的多个行,每个事务在该会话下运行一行。

后续步骤