DBAtlas · Атлас эксплуатации баз данных

Количество VLF (Virtual Log File)

SQL ServerБэкап и журнал

Команда

-- SQL Server 2016 SP2 / 2017 and later:
SELECT DB_NAME(database_id) AS db,
       COUNT(*)             AS vlf_count,
       SUM(CASE WHEN vlf_active = 1 THEN 1 ELSE 0 END) AS active_vlf
FROM   sys.dm_db_log_info(DB_ID(N'Customer'))
GROUP BY database_id;

-- For older versions: DBCC LOGINFO('Customer'); (row count = VLF count)

Что делает

Возвращает число виртуальных файлов журнала (VLF) внутри журнала транзакций. Слишком большое число VLF ухудшает производительность запуска/восстановления/резервного копирования журнала.

Когда использовать

Когда журнал работает медленно или база долго запускается; при пересмотре настройки роста журнала.

Внимание

Сотни/тысячи VLF — тревожный признак; решение — сжать журнал и снова увеличить его достаточно крупными шагами (например, по 8GB). Только запрос; без риска.

Открыть в DBAtlas →

Связанные материалы