sys.dm_tran_aborted_transactions (Transact-SQL)
適用対象: SQL Server 2019 (15.x) Azure SQL Database Azure SQL Managed Instance
SQL Server インスタンスで未解決の中止されたトランザクションに関する情報を返します。
返されるテーブル
列名 | データ型 | 説明 |
---|---|---|
transaction_id | int | 中止されたトランザクションの transaction_id 。 |
database_id | int | 中止されたトランザクションの database_id 。 Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。 |
begin_xact_lsn | numeric(25,0) | 中止されたトランザクションの開始 LSN。 |
end_xact_lsn | numeric(25,0) | 中止されたトランザクションの終了 LSN。 |
begin_time | datetime | 中止されたトランザクションの開始時刻。 |
nest_aborted | bit | 1 の場合、トランザクションに入れ子になった中止されたトランザクションがあることを示します。 |
アクセス許可
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_aborted_transactions
DMV を見ると、SQL Server インスタンスで中止されたすべてのトランザクションがわかります。 nest_aborted
列は、トランザクションがコミットされたかアクティブであることを示しますが、中止された部分 (セーブポイントまたは入れ子になったトランザクション) があり、PVS クリーンアップ プロセスをブロックできます。 詳しくは、「高速データベース復旧のトラブルシューティング」をご覧ください。
未解決の中止されたトランザクションは、永続バージョン ストア (PVS) クリーンアップ プロセスによって削除されます。