Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) SP2 e versões
posteriores Azure SQL Database
AzureSQL Managed Instance
SQL database em Microsoft Fabric
Devolve atributos ao nível de sumário e informação nos ficheiros de registo de transações das bases de dados. Use esta informação para monitorizar e diagnosticar o estado dos registos de transações.
Transact-SQL convenções de sintaxe
Sintaxe
sys.dm_db_log_stats ( database_id )
Arguments
database_id | NULL | PADRÃO
É o ID da base de dados.
database_id é int. Entradas válidas são o número ID de uma base de dados, NULL, ou DEFAULT. A predefinição é NULL.
NULL e DEFAULT são valores equivalentes no contexto da base de dados atual.
A função interna DB_ID pode ser especificada. Ao usar DB_ID sem especificar um nome de base de dados, o nível de compatibilidade da base de dados atual deve ser 90 ou superior.
Tabelas Devolvidas
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| database_id | int | ID da base de dados. No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou pool elástico, mas não em um servidor lógico. |
| recovery_model | nvarchar(60) | Modelo de recuperação da base de dados. Os valores possíveis incluem: SIMPLES BULK_LOGGED COMPLETO |
| log_min_lsn | Nvarchar(24) | Número de sequência do registo de início (LSN) atual no registo de transações. |
| log_end_lsn | Nvarchar(24) | número de sequência log (LSN) do último registo log no log de transações. |
| current_vlf_sequence_number | bigint | Número de sequência atual do ficheiro de registo virtual (VLF ) no momento da execução. |
| current_vlf_size_mb | float | Tamanho atual do ficheiro de registo virtual (VLF) em MB. |
| total_vlf_count | bigint | Número total de ficheiros de registo virtuais (VLFs) no registo de transações. |
| total_log_size_mb | float | Tamanho total do log de transações em MB. |
| active_vlf_count | bigint | Número total de ficheiros de registo virtual (VLFs ) ativos no registo de transações. |
| active_log_size_mb | float | Tamanho total de registo de transações ativas em MB. |
| log_truncation_holdup_reason | nvarchar(60) | Razão do truncamento do troncado. O valor é igual ao log_reuse_wait_desc da coluna de sys.databases. (Para explicações mais detalhadas destes valores, veja O Registo de Transações). Os valores possíveis incluem: NADA CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE ACTIVE_TRANSACTION Espelhamento de Base de Dados REPLICAÇÃO DATABASE_SNAPSHOT_CREATION LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE XTP_CHECKPOINT OUTROS TRANSITÓRIOS |
| log_backup_time | datetime | Último tempo de backup do registo de transações. |
| log_backup_lsn | Nvarchar(24) | Número de sequência do registo de backup do último registo de transação (LSN). |
| log_since_last_log_backup_mb | float | Tamanho do log em MB desde o número de sequência do registo de backup (LSN) do registo da última transação. |
| log_checkpoint_lsn | Nvarchar(24) | Último ponto de controlo número de sequência (LSN). |
| log_since_last_checkpoint_mb | float | Tamanho do log em MB desde o último número de sequência log point (LSN). |
| log_recovery_lsn | Nvarchar(24) |
Número de sequência do registo de recuperação (LSN) da base de dados. Se log_recovery_lsn ocorrer antes do LSN do ponto de controlo, log_recovery_lsn é o LSN de transação ativo mais antigo, caso contrário log_recovery_lsn é o LSN do ponto de controlo. |
| log_recovery_size_mb | float | Tamanho do log em MB desde o número de sequência de log (LSN) para a recuperação de log. |
| recovery_vlf_count | bigint | Número total de ficheiros de registo virtuais (VLFs) a recuperar, caso haja failover ou reinício do servidor. |
Observações
Ao correr sys.dm_db_log_stats contra uma base de dados que participa num Grupo de Disponibilidade como réplica secundária, apenas um subconjunto dos campos descritos acima será devolvido. Atualmente, apenas database_id, recovery_model, e log_backup_time serão devolvidos quando executados contra uma base de dados secundária.
Permissions
Requer a VIEW SERVER STATE permissão na base de dados.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Examples
A. Determinar bases de dados numa instância SQL Server com um elevado número de VLFs
A consulta seguinte devolve as bases de dados com mais de 100 VLFs nos ficheiros de log. Um grande número de VLFs pode afetar o tempo de arranque, restauração e recuperação da base de dados.
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. Determinar bases de dados numa instância SQL Server com backups de registos de transações com mais de 4 horas
A consulta seguinte determina os últimos tempos de backup de log para as bases de dados na instância.
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);
Ver também
Visões e funções de gerenciamento dinâmico (Transact-SQL)
Exibições de gerenciamento dinâmico relacionadas ao banco de dados (Transact-SQL)
sys.dm_db_log_space_usage (Transact-SQL)
sys.dm_db_log_info (Transact-SQL)