⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

MSSQL Error 49930: Log writer performance degraded on drive containing LDF

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Предупреждение в журнале SQL: Error 49930: Log writer performance degraded on drive containing LDF file. I/O requests taking longer than 15 seconds.
  • Высокие задержки по типу ожидания WRITELOG при фиксации транзакций.
  • Резкое падение пропускной способности при проведении документов в 1С.

1. Анализ задержек дискового ввода-вывода файла журнала

SELECT 
    DB_NAME(vfs.database_id) AS DatabaseName,
    mf.physical_name,
    vfs.io_stall_write_ms / NULLIF(vfs.num_of_writes, 0) AS AvgWriteLatency_MS,
    vfs.io_stall_read_ms / NULLIF(vfs.num_of_reads, 0) AS AvgReadLatency_MS
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS vfs
JOIN sys.master_files AS mf 
    ON vfs.database_id = mf.database_id AND vfs.file_id = mf.file_id
WHERE mf.type_desc = 'LOG';

Значение AvgWriteLatency_MS для LDF не должно превышать 2-5 мс.

2. Проверка фрагментации виртуальных файлов журнала (VLF)

SELECT 
    name AS DatabaseName,
    total_vlf_count,
    active_vlf_count
FROM sys.databases d
CROSS APPLY sys.dm_db_log_stats(d.database_id);

Если количество VLF превышает 500-1000, выполните сжатие и контролируемое расширение LDF:

USE [MyDatabase];
CHECKPOINT;
DBCC SHRINKFILE (N'MyDatabase_Log', 1024);
-- Принудительное увеличение цельным куском
ALTER DATABASE [MyDatabase] MODIFY FILE (NAME = N'MyDatabase_Log', SIZE = 8192MB, FILEGROWTH = 1024MB);

3. Включение режима Delayed Durability (при допустимости потерь)

Для ускорения фиксации некритичных пакетных транзакций:

ALTER DATABASE [MyDatabase] SET DELAYED_DURABILITY = ALLOWED;
Практический опыт инженера: Убедитесь, что для LDF файла отключено сжатие NTFS и не активны фоновые антивирусные проверки каталога с базой данных.

Частые вопросы (FAQ)

Что означает ожидание WRITELOG в MSSQL?

Ожидание WRITELOG указывает на время, в течение которого транзакция ждет физической записи и сброса буфера журнала транзакций (Log Block) на диск перед подтверждением (COMMIT).

Почему фрагментация VLF замедляет запись журнала?

Обилие мелких VLF (виртуальных файлов журнала) создает накладные расходы на управление метаданными и замедляет как саму запись, так и операции резервного копирования и восстановления.

Помогает ли размещение LDF на отдельном массиве RAID 10 / NVMe?

Да, журнал транзакций пишется строго последовательно. Разделение LDF и MDF по разным физическим накопителям устраняет конкуренцию за головки диска и контроллер.

Каким должен быть размер шага автоувеличения (FILEGROWTH) для LDF?

Не используйте проценты. Рекомендуется фиксированный шаг от 512 MB до 2048 MB для предотвращения фрагментации VLF.

Telegram Telegram Max Max Позвонить Позвонить E-mail E-mail