sys.dm_db_log_stats (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) SP 2 et versions ultérieures Azure SQL Database Azure SQL Managed Instance

Retourne des attributs de niveau résumé et des informations sur les fichiers journaux des transactions des bases de données. Utilisez ces informations pour la surveillance et les diagnostics de l’intégrité du journal des transactions.

Conventions de la syntaxe Transact-SQL

Syntaxe

 sys.dm_db_log_stats ( database_id )

Arguments

database_id | NULL | PAR DÉFAUT

ID de la base de données. database_id est int. Les entrées valides sont le numéro d’ID d’une base de données, NULLou DEFAULT. Par défaut, il s’agit de NULL. NULL et DEFAULT sont des valeurs équivalentes dans le contexte de la base de données active.
La fonction intégrée DB_ID peut être spécifiée. Lorsque vous utilisez DB_ID sans spécifier de nom de base de données, le niveau de compatibilité de la base de données actuelle doit être supérieur ou égal à 90.

Tables retournées

Nom de la colonne Type de données Description
database_id int ID de la base de données.

Dans Azure SQL Database, les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique.
recovery_model nvarchar(60) Modèle de récupération de la base de données. Les valeurs possibles sont :
SIMPLE
BULK_LOGGED
FULL
log_min_lsn nvarchar(24) Numéro de séquence de journal de démarrage actuel (LSN) dans le journal des transactions.
log_end_lsn nvarchar(24) numéro de séquence de journal (LSN) du dernier enregistrement du journal dans le journal des transactions.
current_vlf_sequence_number bigint Numéro de séquence du fichier journal virtuel actuel au moment de l’exécution.
current_vlf_size_mb float Taille actuelle du fichier journal virtuel (VLF) dans Mo.
total_vlf_count bigint Nombre total de fichiers journaux virtuels (VLF) dans le journal des transactions.
total_log_size_mb float Taille totale du journal des transactions dans Mo.
active_vlf_count bigint Nombre total de fichiers journaux virtuels actifs (VLF) dans le journal des transactions.
active_log_size_mb float Taille totale du journal des transactions actives dans Mo.
log_truncation_holdup_reason nvarchar(60) Raison de la conservation de la troncation du journal. La valeur est identique à log_reuse_wait_desc la colonne de sys.databases. (Pour obtenir des explications plus détaillées sur ces valeurs, consultez Journal des transactions).
Les valeurs possibles sont :
NOTHING
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
RÉPLICATION
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
AUTRES TEMPORAIRES
log_backup_time datetime Dernière heure de sauvegarde du journal des transactions.
log_backup_lsn nvarchar(24) Dernier numéro de séquence de journal de sauvegarde du journal des transactions (LSN).
log_since_last_log_backup_mb float Taille du journal dans Mo depuis le dernier numéro de séquence de journal de sauvegarde du journal des transactions (LSN).
log_case activéepoint_lsn nvarchar(24) Numéro de séquence de journal du dernier case activée point (LSN).
log_since_last_case activéepoint_mb float Taille de journal dans Mo depuis le dernier numéro de séquence de journal de case activée point (LSN).
log_recovery_lsn nvarchar(24) Numéro de séquence de journal de récupération (LSN) de la base de données. S’il log_recovery_lsn se produit avant le LSN case activée point, log_recovery_lsn il s’agit du LSN de transaction actif le plus ancien ; sinon, il s’agit log_recovery_lsn du LSN case activée point.
log_recovery_size_mb float Taille de journal dans Mo depuis le numéro de séquence de journal de récupération du journal (LSN).
recovery_vlf_count bigint Nombre total de fichiers journaux virtuels à récupérer, en cas de basculement ou de redémarrage du serveur.

Notes

Lors de l’exécution sys.dm_db_log_stats sur une base de données qui participe à un groupe de disponibilité en tant que réplica secondaire, seul un sous-ensemble des champs décrits ci-dessus est retourné. Actuellement, seul database_id, recovery_modelet log_backup_time sera retourné lors de l’exécution sur une base de données secondaire.

Autorisations

Nécessite l’autorisation VIEW SERVER STATE dans la base de données.

Autorisations pour SQL Server 2022 (et versions plus récentes)

Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.

Exemples

R. Détermination des bases de données dans une instance SQL Server avec un nombre élevé de fonctions VLF

La requête suivante retourne les bases de données avec plus de 100 VLF dans les fichiers journaux. Un grand nombre de fonctions VLF peuvent affecter le démarrage, la restauration et le temps de récupération de la base de données.

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. Détermination des bases de données dans une instance SQL Server avec des sauvegardes de journal des transactions antérieures à 4 heures

La requête suivante détermine les dernières heures de sauvegarde des journaux pour les bases de données de l’instance.

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); 

Voir aussi

Fonctions et vues de gestion dynamique (Transact-SQL)
Vues de gestion dynamique liées aux bases de données (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)