Delen via


Wijziging van gegevensverzameling - sys.dm_cdc_log_scan_sessions

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft één rij terug voor elke logscansessie in de huidige database. De laatste rij die wordt teruggegeven, vertegenwoordigt de huidige sessie. Je kunt deze weergave gebruiken om statusinformatie terug te geven over de huidige logscansessie, of geaggregeerde informatie over alle sessies sinds de laatste start van de SQL Server-instantie.

De records worden sys.dm_cdc_log_scan_sessions gereset, telkens wanneer de instantie van SQL Server wordt herstart of nadat er een failover is opgezet. Bovendien, als de geraadpleegde database in de secundaire rol van een Always On-beschikbaarheidsgroep valt, worden er geen records teruggegeven.

Voor meer informatie, bekijk What is change data capture (CDC)?

Kolomnaam Gegevenstype Description
session_id int Id van de sessie.

0 = de data die in deze rij wordt teruggegeven is een aggregate van alle sessies sinds de instantie van SQL Server voor het laatst is gestart.
start_time datetime Tijd dat de sessie begon.

Wanneer session_id = 0, begon de tijdgeaggregeerde gegevensverzameling.
end_time datetime Tijd dat de sessie eindigde.

NULL = sessie is actief.

Wanneer session_id = 0, de tijd die de laatste sessie eindigde.
duur int De duur (in seconden) van de sessie.

0 = de sessie bevat geen wijzigingsgegevensopnames.

Wanneer session_id = 0, de som van de duur (in seconden) van alle sessies met wijzigingsdata-opnametransacties.
scan_phase nvarchar(200) De huidige fase van de sessie. Hieronder volgen de mogelijke waarden en hun beschrijvingen:

1: Leesconfiguratie
2: Eerste scan, hashtabel bouwen
3: Tweede scan
4: Tweede scan
5: Tweede scan
6: Schemaversiebeheer
7: Laatste scan
8: Klaar

Wanneer session_id = 0, is deze waarde altijd "Geaggregaat".
error_count int Aantal aangetroffen fouten.

Wanneer session_id = 0, het totale aantal fouten in alle sessies.
start_lsn Nvarchar(23) Ik begin met LSN voor de sessie.

Wanneer session_id = 0, de start-LSN voor de laatste sessie.
current_lsn Nvarchar(23) Huidige LSN wordt gescand.

Wanneer session_id = 0, is de huidige LSN 0.
end_lsn Nvarchar(23) LSN wordt beëindigd voor de sessie.

NULL = sessie is actief.

Wanneer session_id = 0, de eind-LSN voor de laatste sessie.
tran_count bigint Aantal verwerkte transacties voor wijzigingsgegevens. Deze teller wordt bevolkt in fase 2.

Wanneer session_id = 0, het aantal verwerkte transacties in alle sessies.
last_commit_lsn Nvarchar(23) LSN van het laatste commit-logrecord dat is verwerkt.

Wanneer session_id = 0, het laatste commit-logrecord LSN voor een sessie.
last_commit_time datetime Tijd waarop het laatste commit-logrecord is verwerkt.

Wanneer session_id = 0, de tijd waarop het laatste commit-logrecord voor een sessie is.
log_record_count bigint Aantal gescande logrecords.

Wanneer session_id = 0, aantal gescande records voor alle sessies.
schema_change_count int Aantal gedetecteerde data definition language (DDL)-operaties. Deze teller wordt bevolkt in fase 6.

Wanneer session_id = 0, het aantal DDL-bewerkingen dat in alle sessies wordt verwerkt.
command_count bigint Aantal bevelen verwerkt.

Wanneer session_id = 0, het aantal commando's dat in alle sessies wordt verwerkt.
first_begin_cdc_lsn Nvarchar(23) Eerst LSN die change data capture-transacties bevatte.

Wanneer session_id = 0, de eerste LSN die wijzigingsgegevensverzamelingstransacties bevatte.
last_commit_cdc_lsn Nvarchar(23) LSN van het laatste commit-logrecord dat wijzigingsdata-opnametransacties bevatte.

Wanneer session_id = 0, het laatste commit-logrecord LSN voor elke sessie die wijzigingsgegevensopnames bevatte
last_commit_cdc_time datetime Tijd voor het laatste commit-logrecord dat change data capture-transacties bevatte verwerkt.

Wanneer session_id = 0, de tijd waarop het laatste commit-logrecord voor elke sessie die wijzigingsgegevensverzamelingstransacties bevatte, was geïnterpreteerd.
wachttijd int Het verschil, in seconden, tussen end_time en last_commit_cdc_time in de sessie. Deze teller wordt aan het einde van fase 7 bevolkt.

Wanneer session_id = 0, de laatste niet-nul latentiewaarde die door een sessie is geregistreerd.
empty_scan_count int Aantal opeenvolgende sessies die geen wijziging in data-capture transakties bevatten.
failed_sessions_count int Aantal sessies die mislukten.

Opmerkingen

De sys.dm_cdc_log_scan_sessions DMV bevat tot 32 scansessies en een geheel van alle scansessies met session_id= 0. Dus op elk moment kan deze dynamische beheerweergave maximaal 33 rijen bevatten.

Permissions

Vereist toestemming VIEW DATABASE STATE om de sys.dm_cdc_log_scan_sessions dynamische beheerweergave te bevragen. Voor meer informatie over machtigingen op dynamische beheerweergaven, zie Dynamische Beheerweergaven en -functies (Transact-SQL).

Machtigingen voor SQL Server 2022 en hoger

Hiervoor is de machtiging VIEW DATABASE PERFORMANCE STATE vereist voor de database.

Voorbeelden

Het volgende voorbeeld geeft informatie voor de meest actuele sessie.

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  

Volgende stappen