适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 中的 SQL 数据库
sys.dm_tran_session_transactions动态管理视图返回相关事务和会话的相关信息。
| 列名称 | 数据类型 | 说明 |
|---|---|---|
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 权限。
在 Microsoft Fabric 中,查询 需要sys.dm_tran_session_transactions处于贡献者工作区角色或更高权限角色的成员身份。
在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、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一行的多个行,每个事务在该会话下运行一行。
要从 Azure Synapse Analytics 或 Analytics Platform System(PDW)调用,请使用名称 sys.dm_pdw_nodes_tran_session_transactions。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。