Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) SP2 e versioni
successive Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
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, 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 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_modele 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)