Ändra datafångst - sys.dm_cdc_log_scan_sessions

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar en rad för varje loggskanningssession i den aktuella databasen. Den sista raden som returneras representerar den aktuella sessionen. Du kan använda denna vy för att returnera statusinformation om den aktuella loggskanningssessionen, eller aggregerad information om alla sessioner sedan SQL Server-instansen senast startades.

Posterna i sys.dm_cdc_log_scan_sessions återställs varje gång SQL Server-instansen startas om eller efter att en failover inträffat. Dessutom, om den frågade databasen har den sekundära rollen som en Always On-tillgänglighetsgrupp, returneras inga poster.

För mer information, se What is change data capture (CDC)?

Kolumnnamn Datatyp Description
session_id int ID för sessionen.

0 = datan som returneras i denna rad är en aggregerad av alla sessioner sedan SQL Server-instansen senast startades.
start_time datetime Tiden för sessionen började.

När session_id = 0 började den tidsaggregerade datainsamlingen.
end_time datetime Tiden för sessionen slutade.

NULL = sessionen är aktiv.

När session_id = 0, tiden den senaste sessionen slutade.
varaktighet int Längden (i sekunder) av sessionen.

0 = sessionen innehåller inte transaktioner för insamling av förändringsdata.

När session_id = 0, summan av varaktigheten (i sekunder) för alla sessioner med transaktioner för förändringsdatainsamling.
scan_phase nvarchar(200) Den aktuella fasen av sessionen. Följande är möjliga värden och deras beskrivningar:

1: Läskonfiguration
2: Första skanningen, bygger hashtabell
3: Andra skanningen
4: Andra skanningen
5: Andra skanningen
6: Schemaversionering
7: Sista skanningen
8: Klart

När session_id = 0 är detta värde alltid "Aggregerat".
error_count int Antal fel som påträffas.

När session_id = 0, det totala antalet fel i alla sessioner.
start_lsn Nvarchar(23) Startar LSN för sessionen.

När session_id = 0, start-LSN för sista sessionen.
current_lsn Nvarchar(23) Nuvarande LSN scannas.

När session_id = 0 är den aktuella LSN 0.
end_lsn Nvarchar(23) LSN avslutas för sessionen.

NULL = sessionen är aktiv.

När session_id = 0, det avslutande LSN för den senaste sessionen.
tran_count bigint Antal transaktioner med förändringsdatainsamling som behandlas. Denna räknare är befolkad i fas 2.

När session_id = 0, antalet bearbetade transaktioner i alla sessioner.
last_commit_lsn Nvarchar(23) LSN för den senaste commit-loggposten som behandlades.

När session_id = 0, den senaste commit-loggposten LSN för en session.
last_commit_time datetime Tid då den senaste commit-loggposten behandlades.

När session_id = 0, tiden för den senaste commit-loggposten för en session.
log_record_count bigint Antal skannade loggposter.

När session_id = 0, antal skannade poster för alla sessioner.
schema_change_count int Antal upptäckta data definition language (DDL)-operationer. Denna räknare fylls i fas 6.

När session_id = 0, antalet DDL-operationer som bearbetas i alla sessioner.
command_count bigint Antal bearbetade kommandon.

När session_id = 0, antalet bearbetade kommandon i alla sessioner.
first_begin_cdc_lsn Nvarchar(23) Först LSN som innehöll transaktioner för insamling av förändringsdata.

När session_id = 0, den första LSN som innehöll transaktioner för förändringsdatainsamling.
last_commit_cdc_lsn Nvarchar(23) LSN för den senaste commit-loggposten som innehöll transaktioner för insamling av förändringsdata.

När session_id = 0, den senaste commit-loggposten LSN för varje session som innehöll transaktioner med förändringsdatainsamling
last_commit_cdc_time datetime Tid för den senaste commit-loggposten som innehöll transaktioner för insamling av förändringsdata.

När session_id = 0, tiden för den senaste commit-loggposten för varje session som innehöll transaktioner med förändringsdatainsamling.
Latens int Skillnaden, i sekunder, mellan end_time och last_commit_cdc_time under sessionen. Denna räknare fylls i slutet av fas 7.

När session_id = 0, det senaste icke-noll latensvärdet som registreras av en session.
empty_scan_count int Antal på varandra följande sessioner som innehöll datainsamlingstransaktioner utan förändring.
failed_sessions_count int Antal sessioner som misslyckades.

Anmärkningar

sys.dm_cdc_log_scan_sessions DMV innehåller upp till 32 skanningssessioner och en summa av alla skanningssessioner med session_id= 0. Så vid varje given tidpunkt kan denna dynamiska hanteringsvy innehålla maximalt 33 rader.

Permissions

Kräver behörighet VIEW DATABASE STATE för att söka i den dynamiska sys.dm_cdc_log_scan_sessions hanteringsvyn. För mer information om behörigheter för dynamiska hanteringsvyer, se Dynamiska hanteringsvyer och funktioner (Transact-SQL).

Behörigheter för SQL Server 2022 och senare

Kräver behörigheten VISA DATABASPRESTANDATILLSTÅND för databasen.

Examples

Följande exempel ger information för den senaste sessionen.

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  

Nästa steg