Compartir a través de


sys.dm_db_log_stats (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) SP 2 y versiones posteriores Azure SQL Database Azure SQL Managed Instance

Devuelve atributos de nivel de resumen e información sobre los archivos de registro de transacciones de las bases de datos. Use esta información para supervisar y diagnosticar el estado del registro de transacciones.

Convenciones de sintaxis de Transact-SQL

Sintaxis

 sys.dm_db_log_stats ( database_id )

Argumentos

database_id | NULL | PREDETERMINADO

Es el Id. de la base de datos. database_id es int. Las entradas válidas son el número de identificador de una base de datos, NULLo DEFAULT. El valor predeterminado es NULL. NULL y DEFAULT son valores equivalentes en el contexto de la base de datos actual.
Se puede especificar la función integrada DB_ID. Al usar DB_ID sin especificar ningún nombre de base de datos, el nivel de compatibilidad de la base de datos actual debe ser 90 o superior.

Tablas devueltas

Nombre de la columna Tipo de datos Descripción
database_id int Id. de la base de datos.

En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico.
recovery_model nvarchar(60) Modelo de recuperación de la base de datos. Los valores posibles son:
SIMPLE
BULK_LOGGED
FULL
log_min_lsn nvarchar(24) Número de secuencia de registro de inicio actual (LSN) en el registro de transacciones.
log_end_lsn nvarchar(24) número de secuencia de registro (LSN) del último registro del registro en el registro de transacciones.
current_vlf_sequence_number bigint Número de secuencia actual del archivo de registro virtual (VLF) en el momento de la ejecución.
current_vlf_size_mb float Tamaño actual del archivo de registro virtual (VLF) en MB.
total_vlf_count bigint Número total de archivos de registro virtual (VLFs) en el registro de transacciones.
total_log_size_mb float Tamaño total del registro de transacciones en MB.
active_vlf_count bigint Número total de archivos de registro virtual activos (VLFs) en el registro de transacciones.
active_log_size_mb float Tamaño total del registro de transacciones activo en MB.
log_truncation_holdup_reason nvarchar(60) Motivo de suspensión del truncamiento del registro. El valor es igual que log_reuse_wait_desc la columna de sys.databases. (Para obtener explicaciones más detalladas de estos valores, consulte Registro de transacciones).
Los valores posibles son:
NOTHING
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
REPLICACIÓN
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
OTROS TRANSITORIOS
log_backup_time datetime Hora de copia de seguridad del último registro de transacciones.
log_backup_lsn nvarchar(24) Último número de secuencia de registro de copia de seguridad del registro de transacciones (LSN).
log_since_last_log_backup_mb float Tamaño del registro en MB desde el último número de secuencia de registro de copia de seguridad del registro de transacciones (LSN).
log_checkpoint_lsn nvarchar(24) Último número de secuencia de registro de punto de control (LSN).
log_since_last_checkpoint_mb float Tamaño del registro en MB desde el último número de secuencia de registro de punto de control (LSN).
log_recovery_lsn nvarchar(24) Número de secuencia de registro de recuperación (LSN) de la base de datos. Si log_recovery_lsn se produce antes del LSN del punto de control, log_recovery_lsn es el LSN de transacción activo más antiguo; de lo contrario log_recovery_lsn , es el LSN del punto de control.
log_recovery_size_mb float Tamaño del registro en MB desde el número de secuencia de registro de recuperación de registros (LSN) .
recovery_vlf_count bigint Número total de archivos de registro virtual (VFS) que se van a recuperar, si se ha reiniciado la conmutación por error o el servidor.

Comentarios

Cuando se ejecuta sys.dm_db_log_stats en una base de datos que participa en un grupo de disponibilidad como réplica secundaria, solo se devolverá un subconjunto de los campos descritos anteriormente. Actualmente, solo database_idse devolverá , recovery_modely log_backup_time cuando se ejecute en una base de datos secundaria.

Permisos

Se necesita el permiso VIEW SERVER STATE en la base de datos.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Ejemplos

A Determinación de bases de datos en una instancia de SQL Server con un gran número de VLFs

La consulta siguiente devuelve las bases de datos con más de 100 VLFs en los archivos de registro. Un gran número de VLFs puede afectar al inicio, la restauración y el tiempo de recuperación de la base de datos.

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. Determinación de bases de datos en una instancia de SQL Server con copias de seguridad del registro de transacciones anteriores a 4 horas

La consulta siguiente determina los últimos tiempos de copia de seguridad del registro de las bases de datos de la instancia.

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

Consulte también

Funciones y vistas de administración dinámica (Transact-SQL)
Vistas de administración dinámica relacionadas con la base de datos (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)