次の方法で共有


sys.dm_cdc_log_scan_sessions (Transact-SQL)

現在のデータベース内のログ スキャン セッションごとに 1 行のデータを返します。返された行の最後は、現在のセッションを表します。このビューを使用すると、現在のログ スキャン セッションのステータス情報を取得できます。SQL Server のインスタンスが開始されてからのすべてのセッションの集計情報を取得することもできます。

列名

データ型

説明

session_id

int

セッションの ID です。

この行に返されたデータが、SQL Server のインスタンスが開始されてからのすべてのセッションの集計である場合、この列は 0 になります。

start_time

datetime

セッションの開始時刻です。

session_id が 0 の場合は、集計対象データの収集が開始された時刻を表します。

end_time

datetime

セッションの終了時刻です。

NULL は、セッションがアクティブであることを表します。

session_id が 0 の場合は、最後のセッションが終了した時刻を表します。

duration

bigint

セッションの実行時間 (秒単位) です。

変更データ キャプチャ トランザクションがセッションに存在しない場合は 0 になります。

session_id が 0 の場合、変更データ キャプチャ トランザクションを持つすべてのセッションの実行時間の合計 (秒単位) を表します。

scan_phase

nvarchar(200)

セッションの現在のフェーズです。次のいずれかです。

フェーズ説明
1構成の読み取り
21 回目のスキャン (ハッシュ テーブルの構築)
32 回目のスキャン
42 回目のスキャン
52 回目のスキャン
6スキーマのバージョン管理
7最後のスキャン
8完了

session_id が 0 の場合、この値は常に "Aggregate" になります。

error_count

int

発生したエラーの数です。

session_id が 0 の場合は、すべてのセッションのエラー数の合計を表します。

start_lsn

nvarchar(23)

セッションの開始 LSN です。

session_id が 0 の場合は、最後のセッションの開始 LSN を表します。

current_lsn

nvarchar(23)

現在スキャン中の LSN です。

session_id が 0 の場合は、現在の LSN は 0 になります。

end_lsn

nvarchar(23)

セッションの最終 LSN です。

NULL は、セッションがアクティブであることを表します。

session_id が 0 の場合は、最後のセッションの最終 LSN を表します。

tran_count

bigint

処理された変更データ キャプチャ トランザクションの数です。このカウンタはフェーズ 2 で設定されます。

session_id が 0 の場合は、すべてのセッションについての処理済みトランザクションの数を表します。

last_commit_lsn

nvarchar(23)

処理された最終コミット ログ レコードの LSN です。

session_id が 0 の場合は、任意のセッションの最終コミット ログ レコードの LSN を表します。

last_commit_time

datetime

最終コミット ログ レコードが処理された時刻です。

session_id が 0 の場合は、任意のセッションの最終コミット ログ レコードの時刻を表します。

log_record_count

bigint

スキャンされたログ レコードの数です。

session_id が 0 の場合は、すべてのセッションについてのスキャン済みレコードの数を表します。

schema_change_count

int

検出されたデータ定義言語 (DDL) 操作の数です。このカウンタはフェーズ 6 で設定されます。

session_id が 0 の場合は、すべてのセッションについての処理済み DDL 操作の数を表します。

command_count

bigint

処理されたコマンドの数です。

session_id が 0 の場合は、すべてのセッションについての処理済みコマンドの数を表します。

first_begin_cdc_lsn

nvarchar(23)

変更データ キャプチャ トランザクションを含んでいた最初の LSN です。

session_id が 0 の場合、変更データ キャプチャ トランザクションを含んでいた最初の LSN を表します。

last_commit_cdc_lsn

nvarchar(23)

変更データ キャプチャ トランザクションを含んでいた最終コミット ログ レコードの LSN です。

session_id が 0 の場合、変更データ キャプチャ トランザクションを含んでいた任意のセッションについての、最終コミット ログ レコードの LSN を表します。

last_commit_cdc_time

datetime

変更データ キャプチャ トランザクションを含んでいた最終コミット ログ レコードが処理された時刻です。

session_id が 0 の場合、変更データ キャプチャ トランザクションを含んでいた任意のセッションの最終コミット ログ レコードが処理された時刻を表します。

latency

int

セッションの end_timelast_commit_cdc_time 間の時間差 (秒単位) です。このカウンタはフェーズ 7 の最後に設定されます。

session_id が 0 の場合、セッションによって記録された最後の latency 値 (0 以外) を表します。

empty_scan_count

int

変更データ キャプチャ トランザクションが含まれていなかった、連続するセッションの数です。

failed_sessions_count

int

失敗したセッションの数です。

説明

この動的管理ビューの値は、SQL Server のインスタンスが開始されると常にリセットされます。

権限

sys.dm_cdc_log_scan_sessions 動的管理ビューに対してクエリを実行するには、VIEW DATABASE STATE 権限が必要です。動的管理ビューに対する権限の詳細については、「動的管理ビューおよび関数 (Transact-SQL)」を参照してください。

次の例では、最新のセッションの情報を返します。

USE AdventureWorks;
GO
SELECT *
FROM sys.dm_cdc_log_scan_sessions
WHERE session_id = (SELECT MAX(b.session_id) from sys.dm_cdc_log_scan_sessions AS b);
GO

関連項目

参照