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, NULL
o 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_id
se devolverá , recovery_model
y 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)