sys.dm_tran_session_transactions (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

関連付けられているトランザクションとセッションの相関関係情報を返します。

Note

これを Azure Synapse Analytics または Analytics Platform System (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 Managed Instance では、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 アクセス許可が必要です。

解説

バインドされたセッションと分散トランザクションを使用すると、トランザクションが複数のセッションで実行される可能性があります。 このような場合は、 sys.dm_tran_session_transactions トランザクションが実行されているセッションごとに 1 つずつ、同じ transaction_id行に対して複数の行が表示されます。 記録方法に違いがあるため、open_transaction_count一致sys.dm_exec_sessionsopen_transaction_countしない可能性があります。

複数のアクティブな結果セット (MARS) を使用する自動コミット モードで複数の要求を実行すると、1 つのセッションに複数のアクティブなトランザクションを含めることができます。 このような場合は、 sys.dm_tran_session_transactions 同じセッションで実行されているトランザクションごとに 1 つずつ、複数 session_idの行が表示されます。

次のステップ