sys.dm_db_log_stats (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) SP 2 e versioni successive database SQL di Azure Istanza gestita di SQL di Azure

Restituisce attributi a livello di riepilogo e informazioni sui file di log delle transazioni dei database. Usare queste informazioni per il monitoraggio e la diagnostica dell'integrità del log delle transazioni.

Convenzioni di sintassi Transact-SQL

Sintassi

 sys.dm_db_log_stats ( database_id )

Argomenti

database_id | NULL | PREDEFINITO

ID del database. database_id è .int Gli input validi sono il numero ID di un database, NULLo DEFAULT. Il valore predefinito è NULL. NULL e DEFAULT sono valori equivalenti nel contesto del database corrente.
È possibile specificare la funzione predefinita DB_ID . Quando si usa DB_ID senza specificare un nome di database, il livello di compatibilità del database corrente deve essere 90 o superiore.

Tabelle restituite

Nome colonna Tipo di dati Descrizione
database_id int ID del database.

In database SQL di Azure i valori sono univoci all'interno di un singolo database o di un pool elastico, ma non all'interno di un server logico.
recovery_model nvarchar(60) Modello di recupero del database. I valori possibili includono:
SEMPLICE
BULK_LOGGED
FULL
log_min_lsn nvarchar(24) Numero di sequenza del log di avvio corrente (LSN) nel log delle transazioni.
log_end_lsn nvarchar(24) numero di sequenza del log (LSN) dell'ultimo record di log nel log delle transazioni.
current_vlf_sequence_number bigint Numero di sequenza VLF (Virtual Log File) corrente al momento dell'esecuzione.
current_vlf_size_mb float Dimensioni correnti del file di log virtuale (VLF) in MB.
total_vlf_count bigint Numero totale di file di log virtuali nel log delle transazioni.
total_log_size_mb float Dimensioni totali del log delle transazioni in MB.
active_vlf_count bigint Numero totale di file di log virtuali attivi nel log delle transazioni.
active_log_size_mb float Dimensioni totali del log delle transazioni attive in MB.
log_truncation_holdup_reason nvarchar(60) Motivo del troncamento del log. Il valore è uguale alla log_reuse_wait_desc colonna di sys.databases. Per spiegazioni più dettagliate di questi valori, vedere Log delle transazioni).
I valori possibili includono:
NOTHING
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
REPLICA
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
ALTRO TEMPORANEO
log_backup_time datetime Ora dell'ultimo backup del log delle transazioni.
log_backup_lsn nvarchar(24) Ultimo numero di sequenza del log di backup del log delle transazioni (LSN).
log_since_last_log_backup_mb float Dimensioni del log in MB dall'ultimo numero di sequenza del log di backup del log delle transazioni (LSN).
log_checkpoint_lsn nvarchar(24) Ultimo numero di sequenza del log del checkpoint (LSN).
log_since_last_checkpoint_mb float Dimensioni del log in MB dall'ultimo numero di sequenza del log del checkpoint (LSN).Log Size in MB since last checkpoint log sequence number (LSN).
log_recovery_lsn nvarchar(24) Numero di sequenza del log di ripristino (LSN) del database. Se log_recovery_lsn si verifica prima dell'LSN del checkpoint, log_recovery_lsn è l'LSN della transazione attiva meno recente; in caso contrario log_recovery_lsn , è l'LSN del checkpoint.
log_recovery_size_mb float Dimensioni del log in MB dopo il numero di sequenza del log di ripristino del log (LSN).
recovery_vlf_count bigint Numero totale di file di log virtuali da recuperare, in caso di failover o riavvio del server.

Osservazioni:

Quando viene eseguito sys.dm_db_log_stats su un database che partecipa a un gruppo di disponibilità come replica secondaria, verrà restituito solo un subset dei campi descritti in precedenza. Attualmente, solo database_id, recovery_modele log_backup_time verranno restituiti quando vengono eseguiti su un database secondario.

Autorizzazioni

Richiede l'autorizzazione VIEW SERVER STATE nel database.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW edizione Standard RVER PERFORMANCE STATE nel server.

Esempi

R. Determinazione dei database in un'istanza di SQL Server con un numero elevato di VVLF

La query seguente restituisce i database con più di 100 file VVL nei file di log. Un numero elevato di VVLF può influire sull'avvio, il ripristino e il tempo di ripristino del database.

SELECT name AS 'Database Name', total_vlf_count AS 'VLF count' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id) 
WHERE total_vlf_count  > 100;

B. Determinazione dei database in un'istanza di SQL Server con backup del log delle transazioni precedenti a 4 ore

La query seguente determina i tempi di backup dell'ultimo log per i database nell'istanza di .

SELECT name AS 'Database Name', log_backup_time AS 'last log backup time' 
FROM sys.databases AS s
CROSS APPLY sys.dm_db_log_stats(s.database_id); 

Vedi anche

Funzioni e viste a gestione dinamica (Transact-SQL)
Viste a gestione dinamica correlate al database (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)