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 relative alla sintassi Transact-SQL
Sintassi
sys.dm_db_log_stats ( database_id )
Argomenti
database_id | NULL | DEFAULT
ID del database. database_id
è .int
Gli input validi sono il numero ID di un database, NULL
o 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 utilizza DB_ID
senza specificare un nome di database, il livello di compatibilità del database corrente deve essere 90 o un valore 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 database singolo 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_model
e log_backup_time
verranno restituiti quando vengono eseguiti su un database secondario.
Autorizzazioni
In VIEW SERVER STATE
è richiesta l'autorizzazione per il database.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il 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
Viste e funzioni a gestione dinamica (Transact-SQL)
Viste a gestione dinamica relative ai database (DMV)(Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)