Change Data Capture - sys.dm_cdc_log_scan_sessions
Si applica a:SQL ServerDatabase SQL diAzure Istanza gestita di SQL di Azure
Restituisce una riga per ogni sessione di analisi dei log nel database corrente. L'ultima riga restituita rappresenta la sessione corrente. È possibile usare questa vista per restituire informazioni sullo stato relative alla sessione di analisi del log corrente o informazioni aggregate su tutte le sessioni dall'ultimo avvio dell'istanza di SQL Server.
I record in sys.dm_cdc_log_scan_sessions
vengono reimpostati ogni volta che l'istanza di SQL Server viene riavviata o dopo un failover. Inoltre, se il database sottoposto a query si trova nel ruolo secondario di un gruppo di disponibilità AlwaysOn, non vengono restituiti record.
Per altre informazioni, vedere Che cos'è Change Data Capture (CDC)?
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
session_id |
int | ID della sessione. 0 = i dati restituiti in questa riga sono un'aggregazione di tutte le sessioni dall'ultimo avvio dell'istanza di SQL Server. |
start_time | datetime | Ora di inizio della sessione. Quando session_id = 0, è iniziata la raccolta di dati aggregati. |
end_time | datetime | Ora di fine della sessione. NULL = la sessione è attiva. Quando session_id = 0, l'ora di fine dell'ultima sessione. |
duration | int | Durata della sessione espressa in secondi. 0 = la sessione non contiene transazioni di acquisizione dei dati delle modifiche. Quando session_id = 0, la somma della durata (in secondi) di tutte le sessioni con transazioni change data capture. |
scan_phase | nvarchar(200) | La fase corrente della sessione. Di seguito sono riportati i valori possibili e le relative descrizioni: 1: Lettura della configurazione 2: Prima analisi, compilazione della tabella hash 3: Seconda analisi 4: Seconda analisi 5: Seconda analisi 6: Controllo delle versioni dello schema 7: Ultima analisi 8: Operazione completata Quando session_id = 0, questo valore è sempre "Aggregate". |
error_count | int | Numero di errori. Quando session_id = 0, il numero totale di errori in tutte le sessioni. |
start_lsn | nvarchar(23) | Avvio di LSN per la sessione. Quando session_id = 0, l'LSN iniziale per l'ultima sessione. |
current_lsn | nvarchar(23) | LSN corrente in corso di analisi. Quando session_id = 0, l'LSN corrente è 0. |
end_lsn | nvarchar(23) | Numero LSN finale per la sessione. NULL = la sessione è attiva. Quando session_id = 0, l'LSN finale per l'ultima sessione. |
tran_count | bigint | Numero di transazioni di acquisizione dei dati delle modifiche elaborate. Questo contatore viene popolato nella fase 2. Quando session_id = 0, il numero di transazioni elaborate in tutte le sessioni. |
last_commit_lsn | nvarchar(23) | LSN dell'ultimo record di log del commit elaborato. Quando session_id = 0, l'ultimo record di log di commit LSN per qualsiasi sessione. |
last_commit_time | datetime | Ora di elaborazione dell'ultimo record di log del commit. Quando session_id = 0, ora dell'ultimo record del log di commit per qualsiasi sessione. |
log_record_count | bigint | Numero dei record di log analizzati. Quando session_id = 0, numero di record analizzati per tutte le sessioni. |
schema_change_count | int | Numero di operazioni DDL (Data Definition Language) rilevate. Questo contatore viene popolato durante la fase 6. Quando session_id = 0, il numero di operazioni DDL elaborate in tutte le sessioni. |
command_count | bigint | Numero di comandi elaborati. Quando session_id = 0, il numero di comandi elaborati in tutte le sessioni. |
first_begin_cdc_lsn | nvarchar(23) | Primo numero LSN contenente transazioni di acquisizione dei dati delle modifiche. Quando session_id = 0, il primo LSN che conteneva transazioni change data capture. |
last_commit_cdc_lsn | nvarchar(23) | Numero LSN dell'ultimo record di log del commit contenente transazioni di acquisizione dei dati delle modifiche. Quando session_id = 0, LSN dell'ultimo record del log di commit per qualsiasi sessione che contiene transazioni change data capture |
last_commit_cdc_time | datetime | Ora di elaborazione dell'ultimo record di log del commit contenente transazioni di acquisizione dei dati delle modifiche. Quando session_id = 0, ora dell'ultimo record del log di commit per qualsiasi sessione contenente transazioni change data capture. |
Latenza | int | Differenza, in secondi, tra end_time e last_commit_cdc_time nella sessione. Questo contatore viene popolato al termine della fase 7.Quando session_id = 0, l'ultimo valore di latenza diverso da zero registrato da una sessione. |
empty_scan_count | int | Numero di sessioni consecutive che non contengono transazioni di acquisizione dei dati delle modifiche. |
failed_sessions_count | int | Numero di sessioni non riuscite. |
Osservazioni:
La sys.dm_cdc_log_scan_sessions
DMV contiene fino a 32 sessioni di analisi e un'aggregazione di tutte le sessioni di analisi con session_id= 0
. Pertanto, in qualsiasi momento, questa vista a gestione dinamica può contenere un massimo di 33 righe.
Autorizzazioni
È richiesta l'autorizzazione VIEW DATABASE STATE per eseguire query sulla vista a sys.dm_cdc_log_scan_sessions
gestione dinamica. Per altre informazioni sulle autorizzazioni per le viste a gestione dinamica, vedere Funzioni e viste a gestione dinamica (Transact-SQL).
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW DATABASE PERFORMANCE STATE per il database.
Esempi
Nell'esempio seguente vengono restituite informazioni relative alla sessione più recente.
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
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per