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 数据库基本、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
一行的多个行,每个事务在该会话下运行一行。