Change Data Capture: sys.dm_cdc_log_scan_sessions
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt eine Zeile für jede Protokollscansitzung in der aktuellen Datenbank zurück. Die letzte zurückgegebene Zeile stellt die aktuelle Sitzung dar. Mithilfe dieser Sicht können Sie Statusinformationen zur aktuellen Protokollscansitzung oder aggregierte Informationen zu allen Sitzungen seit dem letzten Start der Instanz von SQL Server zurückgeben.
Die Datensätze werden sys.dm_cdc_log_scan_sessions
zurückgesetzt, wenn die Instanz von SQL Server neu gestartet wird oder nachdem ein Failover erfolgt. Wenn sich die abgefragte Datenbank in der sekundären Rolle einer AlwaysOn-Verfügbarkeitsgruppe befindet, werden keine Datensätze zurückgegeben.
Weitere Informationen: Was ist die Änderungsdatenerfassung (CDC)?
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
session_id |
int | ID der Sitzung. 0 = Die in dieser Zeile zurückgegebenen Daten sind ein Aggregat aller Sitzungen, seit die Instanz von SQL Server das letzte Mal gestartet wurde. |
start_time | datetime | Zeitpunkt, zu dem die Sitzung begonnen wurde. Wenn session_id = 0, der Zeitpunkt, zu dem die aggregierte Datensammlung gestartet wurde. |
end_time | datetime | Zeitpunkt, zu dem die Sitzung beendet wurde. NULL = Sitzung ist aktiv. Wenn session_id = 0, der Zeitpunkt, zu dem die letzte Sitzung beendet wurde. |
duration | int | Die Dauer (in Sekunden) der Sitzung. 0 = Die Sitzung enthält keine Change Data Capture-Transaktionen. Wenn session_id = 0, die Summe der Dauer aller Sitzungen (in Sekunden) mit Change Data Capture-Transaktionen. |
scan_phase | nvarchar(200) | Die aktuelle Phase der Sitzung. Die folgende Auflistung enthält die möglichen Werte und deren Beschreibung: 1: Lesen der Konfiguration 2: Erster Scan, Erstellen der Hashtabelle 3: Zweiter Scan 4: Zweiter Scan 5: Zweiter Scan 6: Versionsverwaltung des Schemas 7: Letzter Scan 8: Fertig Wenn session_id = 0, lautet dieser Wert immer „Aggregat“. |
error_count | int | Anzahl der aufgetretenen Fehler. Wenn session_id = 0, die Gesamtzahl der Fehler in allen Sitzungen. |
start_lsn | nvarchar(23) | Start-LSN für die Sitzung. When session_id = 0, die Start-LSN für die letzte Sitzung. |
current_lsn | nvarchar(23) | Aktuelle LSN, die gescannt wird. Wenn session_id = 0, lautet die aktuelle LSN 0. |
end_lsn | nvarchar(23) | Letzte LSN für die Sitzung. NULL = Sitzung ist aktiv. Wenn session_id = 0, die End-LSN für die letzte Sitzung. |
tran_count | bigint | Anzahl der verarbeiteten Change Data Capture-Transaktionen. Dieser Leistungsindikator wird in Phase 2 aufgefüllt. Wenn session_id = 0, die Anzahl der verarbeiteten Transaktionen in allen Sitzungen. |
last_commit_lsn | nvarchar(23) | LSN des letzten verarbeiteten Protokolldatensatzes für den Commit. Wenn session_id = 0, die letzte LSN des Protokolldatensatzes für den Commit einer beliebigen Sitzung. |
last_commit_time | datetime | Zeitpunkt, zu dem der letzte Protokolldatensatz für den Commit verarbeitet wurde. Wenn session_id = 0, der Zeitpunkt des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung. |
log_record_count | bigint | Anzahl der gescannten Protokolldatensätze. Wenn session_id = 0, die Anzahl der gescannten Datensätze für alle Sitzungen. |
schema_change_count | int | Anzahl der erkannten Vorgänge in der Datendefinitionssprache (Data Definition Language, DDL). Dieser Leistungsindikator wird in Phase 6 aufgefüllt. Wenn session_id = 0, die Anzahl der verarbeiteten DDL-Vorgänge in allen Sitzungen. |
command_count | bigint | Anzahl der verarbeiteten Befehle. Wenn session_id = 0, die Anzahl der verarbeiteten Befehle in allen Sitzungen. |
first_begin_cdc_lsn | nvarchar(23) | Erste LSN, die Change Data Capture-Transaktionen enthalten hat. Wenn session_id = 0, die erste LSN, die Change Data Capture-Transaktionen enthalten hat. |
last_commit_cdc_lsn | nvarchar(23) | LSN des letzten Protokolldatensatzes für den Commit, der Change Data Capture-Transaktionen enthalten hat. Wenn session_id = 0, die LSN des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung, die Change Data Capture-Transaktionen enthalten hat. |
last_commit_cdc_time | datetime | Zeitpunkt, zu dem der letzte Protokolldatensatz für den Commit verarbeitet wurde, der Change Data Capture-Transaktionen enthalten hat. Wenn session_id = 0, der Zeitpunkt des letzten Protokolldatensatzes für den Commit einer beliebigen Sitzung, die Change Data Capture-Transaktionen enthalten hat. |
latency | int | Die Differenz (in Sekunden) zwischen end_time und last_commit_cdc_time in der Sitzung. Dieser Leistungsindikator wird am Ende der Phase 7 aufgefüllt.Wenn session_id = 0, der von einer Sitzung aufgezeichnete letzte Latenzwert ungleich 0 (null). |
empty_scan_count | int | Anzahl der aufeinander folgenden Sitzungen, die keine Change Data Capture-Transaktionen enthalten haben. |
failed_sessions_count | int | Anzahl der fehlgeschlagenen Sitzungen. |
Hinweise
Der sys.dm_cdc_log_scan_sessions
DMV enthält bis zu 32 Scansitzungen und ein Aggregat aller Scansitzungen mit session_id= 0
. Diese dynamische Verwaltungsansicht kann also jederzeit maximal 33 Zeilen enthalten.
Berechtigungen
Erfordert die VIEW DATABASE STATE-Berechtigung zum Abfragen der dynamischen Verwaltungssicht sys.dm_cdc_log_scan_sessions
. Weitere Informationen zu Berechtigungen für dynamische Verwaltungssichten finden Sie unter Dynamische Verwaltungssichten und -funktionen (Transact-SQL).
Berechtigungen für SQL Server 2022 und höher
Erfordert DIE BERECHTIGUNG "DATENBANKLEISTUNGSSTATUS ANZEIGEN" für die Datenbank.
Beispiele
Im folgenden Beispiel werden Informationen zur aktuellen Sitzung zurückgegeben.
USE AdventureWorks2022;
GO
SELECT session_id, start_time, end_time, duration, scan_phase,
error_count, start_lsn, current_lsn, end_lsn, tran_count,
last_commit_lsn, last_commit_time, log_record_count, schema_change_count,
command_count, first_begin_cdc_lsn, last_commit_cdc_lsn,
last_commit_cdc_time, latency, empty_scan_count, failed_sessions_count
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