sys.dm_tran_session_transactions (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 BasicS0、および 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_countsys.dm_exec_sessions.open_transaction_countと一致しない可能性があります。

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

次のステップ