sys.dm_tran_session_transactions (Transact-SQL)
適用対象: SQL Server Azure SQL データベース 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 の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、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_sessions
.open_transaction_count
と一致しない可能性があります。
複数のアクティブな結果セット (MARS) を使用する自動コミット モードで複数の要求を実行すると、1 つのセッションに複数のアクティブなトランザクションを含めることができます。 このような場合、 sys.dm_tran_session_transactions
は、同じ session_id
に対して複数の行 (そのセッションで実行されているトランザクションごとに 1 行) を表示します。