Megosztás a következőn keresztül:


Változásadat-rögzítés - sys.dm_cdc_log_scan_sessions

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Minden naplószkennelési üléshez egy sort ad vissza az aktuális adatbázisban. Az utolsó visszatérő sor a jelenlegi ülésszakot jelöli. Ezt a nézetet arra használhatod, hogy visszaadd a jelenlegi naplószkennelési ülés állapotadatait, vagy az SQL Server utolsó indítása óta összesített adatokat az összes munkamenetről.

A bejegyzések akkor nullázódnak sys.dm_cdc_log_scan_sessions , amikor az SQL Server példányát újraindítják, vagy egy failover után. Továbbá, ha a lekérdezés által megkérdezett adatbázis másodlagos szerepben van, mint Always On, akkor nem térnek vissza rekordok.

További információért tekintse meg a változásadatok rögzítését (CDC)?

Oszlop név Adattípus Description
session_id int A munkamenet azonosítója.

0 = a sorban visszaadott adatok az SQL Server utolsó indítása óta minden munkamenet összesített összege.
start_time datetime Itt kezdődött az ülés.

Amikor session_id = 0, megkezdődött az időbeli aggregált adatgyűjtés.
end_time datetime Ideje véget érjen az ülésnek.

NULL = az ülés aktív.

Amikor session_id = 0, az utolsó alkalom vége.
időtartam int Az ülés időtartama (másodpercekben).

0 = a munkafolyamat nem tartalmaz változásadat-rögzítési tranzakciókat.

Amikor session_id = 0, az összes változás adatrögzítési tranzakció időtartamának (másodpercekben) összege.
scan_phase nvarchar(200) Az ülés jelenlegi szakasza. Az alábbiakban találhatók a lehetséges értékek és azok leírásai:

1: Olvasási konfiguráció
2: Első szkennelés, hash tábla építése
3: Második szkennelés
4: Második szkennelés
5: Második vizsgálat
6: Séma verziózás
7: Utolsó vizsgálat
8: Kész

Amikor session_id = 0, ez az érték mindig "Aggregáció".
error_count int Az észlelt hibák száma.

Amikor session_id = 0, az összes alkalommal hibák összesített száma.
start_lsn nvarchar(23) LSN-t kezdek az ülésre.

Amikor session_id = 0, az utolsó alkalom kezdő LSN-je.
current_lsn nvarchar(23) Jelenleg az LSN vizsgálat alatt áll.

Amikor session_id = 0, akkor az aktuális LSN 0.
end_lsn nvarchar(23) Az LSN befejezése a játék miatt.

NULL = az ülés aktív.

Amikor session_id = 0, az utolsó játék vége LSN.
tran_count bigint A feldolgozás által feldolgozott változásadat-rögzítési tranzakciók száma. Ez a számláló a 2. fázisban van feltöltve.

When session_id = 0, az összes alkalommal feldolgozott tranzakciók száma.
last_commit_lsn nvarchar(23) Az utolsó feldolgozott commit log rekord LSN-je.

Amikor session_id = 0, az utolsó commit log LSN bármely ülés számára.
last_commit_time datetime Az utolsó commit log rekord feldolgozásának ideje.

Amikor session_id = 0, az utolsó commit log rekord időpontja bármely ülésen.
log_record_count bigint A naplónaplók száma beolvasolt.

Amikor session_id = 0, az összes szekcióra beolvasott rekordok száma.
schema_change_count int Szám adatdefiníciós nyelv (DDL) műveletei észleltek. Ez a számláló a 6. fázisban van feltöltve.

Amikor session_id = 0, az összes munkamenetben feldolgozott DDL műveletek száma.
command_count bigint A feldolgozott parancsok száma.

Amikor session_id = 0, az összes alkalommal feldolgozott parancsok száma.
first_begin_cdc_lsn nvarchar(23) Először LSN, amely változásadat-rögzítési tranzakciókat tartalmazott.

Amikor session_id = 0, az első LSN, amely változásadat-rögzítési tranzakciókat tartalmazott.
last_commit_cdc_lsn nvarchar(23) Az utolsó commit log rekord LSN-je, amely változásadat-rögzítési tranzakciókat tartalmazott.

Amikor session_id = 0, az utolsó elkötelezett napló LSN bármely olyan üléshez, amely változásadat-rögzítési tranzakciókat tartalmaz
last_commit_cdc_time datetime Az utolsó commit napló feldolgozásának ideje lett volna, amely változásadat-rögzítési tranzakciókat tartalmazott.

Amikor session_id = 0, az az utolsó köteleződési napló az egyes olyan ülésekhez, amely változásadat-rögzítési tranzakciókat tartalmaz.
lappangás int A különbség másodpercekben, az end_time ülés között és last_commit_cdc_time között. Ez a számláló a 7. fázis végén van feltöltve.

Amikor session_id = 0, az utolsó nem nulla késleltetési érték, amelyet egy session rögzített.
empty_scan_count int Azok számát, amelyek nem tartalmaztak változást tartalmazó adatrögzítési tranzakciók.
failed_sessions_count int Hány alkalommal nem sikerült ülés.

Megjegyzések

A sys.dm_cdc_log_scan_sessions DMV legfeljebb 32 szkennelési ülést tartalmaz, valamint az összes szkennelési ülés összesített összességét .session_id= 0 Tehát bármely pillanatban ez a dinamikus menedzsment nézet legfeljebb 33 sort tartalmazhat.

Permissions

A VIEW DATABASE STATE engedély szükséges a dinamikus menedzsment nézet lekérdezéséhez sys.dm_cdc_log_scan_sessions . További információért a dinamikus menedzsment nézetek jogosultságairól lásd a Dinamikus menedzsment nézeteket és funkciókat (Transact-SQL).

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A VIEW DATABASE PERFORMANCE STATE engedélyre van szüksége az adatbázisban.

Példák

A következő példa a legfrissebb ülés adatait adja vissza.

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  

Következő lépések