Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

MSSQL_49930 1С:Предприятие и СУБД

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.

Полезные материалы
Рекомендуем