sys.dm_tran_transactions_スナップショット (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
各スナップショット トランザクションの開始時にアクティブなトランザクションのsequence_numberの仮想テーブルを返します。 このビューで返される情報を基に、次のことを確認できます。
現在アクティブなスナップショット トランザクションの数を検索します。
特定のスナップショット トランザクションで無視されるデータ変更。 スナップショット トランザクションの開始時にアクティブなトランザクションの場合、そのトランザクションがコミットされた後でも、そのトランザクションによるすべてのデータ変更は、スナップショット トランザクションによって無視されます。
たとえば、sys.dm_tran_transactions_スナップショットからの次の出力を考えてみます。
transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59 0 57
59 0 58
60 0 57
60 0 58
60 0 59
60 3 57
60 3 58
60 3 59
60 3 60
transaction_sequence_num
列は、現在のスナップショット トランザクションのトランザクション シーケンス番号 (XSN) です。 出力には、次の 2 つが表示されます60
。 59
snapshot_sequence_num
列は、各スナップショット トランザクションの開始時にアクティブ状態にあったトランザクションのトランザクション シーケンス番号です。
出力は、XSN-57 と XSN-58 の 2 つのアクティブなトランザクションが実行されている間に、スナップショット トランザクション XSN-59 が開始されることを示しています。 XSN-57 または XSN-58 がデータ変更を行った場合、XSN-59 は変更を無視し、行のバージョン管理を使用してデータベースのトランザクション整合性ビューをメインします。
スナップショット トランザクション XSN-60 は、XSN-57 および XSN-58 および XSN 59 によって行われたデータ変更も無視します。
返されるテーブル
列名 | データ型 | 説明 |
---|---|---|
transaction_sequence_num | bigint | スナップショット トランザクションのトランザクション シーケンス番号 (XSN)。 |
スナップショット_id | int | 行のバージョン管理を使用して読み取りコミットで開始された各 Transact-SQL ステートメントのスナップショット ID。 この値は、行のバージョン管理を使用して読み取りコミット済みで実行される各クエリをサポートするデータベースのトランザクション整合性ビューを生成するために使用されます。 |
スナップショット_sequence_num | bigint | スナップショット トランザクションが開始したときに有効となっていたトランザクション シーケンス番号。 |
アクセス許可
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_transactions_スナップショットは、現在アクティブなすべてのスナップショット トランザクションに関するこの情報を報告します。
各トランザクションは、トランザクションの開始時に割り当てられるトランザクション シーケンス番号によって識別されます。 トランザクションは、BEGIN TRANSACTION または BEGIN WORK ステートメントが実行されたときに開始されますが、 ただし、データベース エンジンは、BEGIN TRANSACTION または BEGIN WORK ステートメントの後にデータにアクセスする最初の Transact-SQL ステートメントを実行してトランザクション シーケンス番号を割り当てます。 トランザクション シーケンス番号は 1 ずつ増加します。
参照
動的管理ビューと動的管理関数 (Transact-SQL)
トランザクション関連の動的管理ビューおよび関数 (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示