O que é um arquivo de log virtual (VLF)?

O arquivo de log de transações é fisicamente dividido internamente em vários arquivos de log virtuais (VLFs).
Esse número pode aumentar com base na frequência com que as transações ativas gravam no disco e nas configurações de crescimento automático do arquivo de log. Com altas contagens de VLF, os backups serão executados mais lentamente. Algumas operações TSQL, como UPDATE/DELETE, levarão mais tempo.
O serviço SQL Engine leva muito tempo para ser iniciado. Replicação/AlwaysOn/Espelhamento/Envio de logs e outras operações – todas sofrem.
Como identificar o problema?
Você pode obter informações sobre a contagem de VLF usando DBCC LOGINFO.
Para versões mais recentes do SQL Server (SQL Server 2016 SP2 e posterior), você pode usar a consulta abaixo que usa funções de gerenciamento dinâmico (DMFs) do SQL.
SELECT [name] AS 'Database Name',
COUNT(l.database_id) AS 'VLF Count',
SUM(CAST(vlf_active AS INT)) AS 'Active VLF',
COUNT(l.database_id)-SUM(CAST(vlf_active AS INT)) AS 'Inactive VLF',
SUM(vlf_size_mb) AS 'VLF Size (MB)',
SUM(vlf_active*vlf_size_mb) AS 'Active VLF Size (MB)',
SUM(vlf_size_mb)-SUM(vlf_active*vlf_size_mb) AS 'Inactive VLF Size (MB)'
FROM sys.databases s
CROSS APPLY sys.dm_db_log_info(s.database_id) l
GROUP BY [name]
ORDER BY COUNT(l.database_id)

Figura1 – Saída de VLFs de consulta.
Quando VLF abaixo de 100 – você pode ignorar
Quando entre 100 – 200 – você pode ignorar, mas melhor corrigir
Quando acima de 400 – está ficando urgente, então conserte.
Quando acima de 600 – as lentidões estão acontecendo, mas não é fácil diagnosticá-las. Consertar.
Quando acima de 5000, corrija agora.
Como corrigir?
Corrija as configurações de crescimento padrão do banco de dados.
Reduza os arquivos de log de transações e aumente previamente para definir tamanhos.
Kommentare