Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca jeden wiersz dla każdej sesji log scan w bieżącej bazie danych. Ostatni wiersz zwracany reprezentuje bieżącą sesję. Możesz użyć tego widoku, aby zwrócić informacje o statusie bieżącej sesji skanowania logów lub zagregowane informacje o wszystkich sesjach od momentu ostatniego uruchomienia instancji SQL Server.
Rekordy są sys.dm_cdc_log_scan_sessions resetowane za każdym razem, gdy instancja SQL Server jest restartowana lub po awaryjnym przejściu. Dodatkowo, jeśli zapytany baza danych pełni drugorzędną rolę grupy dostępności Always On, to nie są zwracane żadne rekordy.
Aby uzyskać więcej informacji, zapoznaj się z Czym jest przechwytywanie danych zmian (CDC)?
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
session_id |
int | Identyfikator sesji. 0 = dane zwrócone w tym wierszu są sumą wszystkich sesji od ostatniego uruchomienia instancji SQL Server. |
| start_time | datetime | Czas na rozpoczęcie sesji. Gdy = session_id 0, rozpoczęło się zbieranie danych zagregowanych w czasie. |
| end_time | datetime | Czas zakończenia sesji. NULL = sesja jest aktywna. Gdy session_id = 0, czas zakończenia ostatniej sesji. |
| czas trwania | int | Czas trwania sesji (w sekundach). 0 = sesja nie zawiera transakcji przechwytywania danych zmian. Gdy = session_id 0, suma czasu trwania (w sekundach) wszystkich sesji z transakcjami przechwytywania zmian danych. |
| scan_phase | nvarchar(200) | Obecna faza sesji. Poniżej przedstawiono możliwe wartości i ich opisy: 1: Konfiguracja odczytu 2: Pierwsze skanowanie, budowanie tablicy skrótu 3: Drugie skanowanie 4: Drugie skanowanie 5: Drugie skanowanie 6: Wersjonowanie schematów 7: Ostatnie skanowanie 8: Gotowe Gdy = session_id 0, ta wartość zawsze jest "Agregat". |
| error_count | int | Liczba napotkanych błędów. Gdy session_id = 0, to całkowita liczba błędów we wszystkich sesjach. |
| start_lsn | nvarchar(23) | Zaczynam LSN na sesję. Gdy = session_id 0, to początkowy LSN dla ostatniej sesji. |
| current_lsn | nvarchar(23) | Aktualny LSN jest skanowany. Gdy = session_id 0, aktualny LSN wynosi 0. |
| end_lsn | nvarchar(23) | Zakończenie LSN na sesję. NULL = sesja jest aktywna. Gdy session_id = 0, końcowy LSN dla ostatniej sesji. |
| tran_count | bigint | Liczba przetworzonych transakcji przechwytywania zmian danych. Ten licznik jest aktywowany w fazie 2. Gdy = session_id 0, liczba przetworzonych transakcji we wszystkich sesjach. |
| last_commit_lsn | nvarchar(23) | LSN ostatniego zapisu logu commitu przetworzony. Gdy = session_id 0, ostatni commit zapisuje LSN dla dowolnej sesji. |
| last_commit_time | datetime | Czas przetwarzania ostatniego zapisu logu commit. Gdy = session_id 0, czas jest ostatnim zapisem logu commitu dla dowolnej sesji. |
| log_record_count | bigint | Liczba zeskanowanych rejestrów dziennika. Gdy = session_id 0, liczba zeskanowanych rekordów dla wszystkich sesji. |
| schema_change_count | int | Wykryta liczba operacji języka definicji danych (DDL). Ten licznik jest wypełniany w fazie 6. Gdy = session_id 0, liczba operacji DDL wykonanych we wszystkich sesjach. |
| command_count | bigint | Liczba przetworzonych komend. Gdy session_id = 0, liczba poleceń przetworzonych we wszystkich sesjach. |
| first_begin_cdc_lsn | nvarchar(23) | Pierwszy LSN zawierał transakcje przechwytywania danych zmian. Gdy = session_id 0, pierwszy LSN zawierający transakcje przechwytywania danych zmianowych. |
| last_commit_cdc_lsn | nvarchar(23) | LSN ostatniego zapisu logu commit, który zawierał transakcje przechwytywania zmian. Gdy = session_id 0, ostatni zapis zatwierdzenia jest LSN dla każdej sesji zawierającej transakcje przechwytywania danych zmian |
| last_commit_cdc_time | datetime | Czas przetwarzania ostatniego zapisu zatwierdzeń zawierającego transakcje przechwytywania zmian. Gdy = session_id 0, to czas ostatniego zapisu zatwierdzeń dla każdej sesji zawierającej transakcje przechwytywania danych zmian. |
| Opóźnienie | int | Różnica, w sekundach, między end_time i last_commit_cdc_time w trakcie sesji. Ten licznik pojawia się na końcu fazy 7.Gdy session_id = 0, ostatnia wartość opóźnienia niezerowa zarejestrowana przez sesję. |
| empty_scan_count | int | Liczba kolejnych sesji, które nie zawierały transakcji przechwytywania danych o zmianie. |
| failed_sessions_count | int | Liczba sesji, które się nie powiodły. |
Uwagi
DMV sys.dm_cdc_log_scan_sessions zawiera do 32 sesji skanowania oraz agregację wszystkich sesji skanowania z .session_id= 0 W danym momencie ten dynamiczny widok zarządzania może zawierać maksymalnie 33 wiersze.
Permissions
Wymaga uprawnień VIEW DATABASE STATE do zapytań w dynamicznym widoku sys.dm_cdc_log_scan_sessions zarządzania. Więcej informacji o uprawnieniach w dynamicznych widokach zarządzania można znaleźć w Dynamicznych Widokach i Funkcjach Zarządzania (Transact-SQL).
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI BAZY DANYCH w bazie danych.
Przykłady
Poniższy przykład zwraca informacje o najaktualnszej sesji.
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