← База знаний

Оптимизация MS SQL Server для 1С 8.3: чек-лист для сисадмина

Установка MS SQL Server в режиме «Далее-Далее-Готово» — главная причина, почему мощные сервера стоимостью в миллион рублей работают медленнее, чем обычный ПК. Архитектура 1С диктует свои суровые правила для СУБД. Ниже — базовый технический чек-лист настроек.

1. Ограничение потребления оперативной памяти (Minimum / Maximum Server Memory)

По умолчанию SQL Server может забрать себе 100% всей оперативной памяти на сервере, в результате чего "родной" службе сервера 1С (rphost) и самой Windows памяти не останется совсем — начнутся глубокие тормоза и зависания системных процессов.

  • Обязательно установите Maximum Server Memory. Эмпирическое правило: оставляем 4-6 ГБ для операционной системы и дополнительно 4-8 ГБ для сервера 1С Предприятие (если он установлен на той же физической машине). Оставшееся отдаем SQL.

Сервер мощный, а 1С всё равно тормозит?

Проведу глубокий технический аудит связки "Windows – Сервер 1С – MS SQL". Настрою кэширование, блокировки и планы обслуживания, чтобы ускорить работу в 3-5 раз без покупки новых серверов.

Получить консультацию →

2. Архитектура TempDB

База TempDB критически важна для 1С, так как платформа 1С использует огромное количество временных таблиц для передачи параметров и формирования отчетов.

Правила для TempDB в связке с 1С:
  • Файлы TempDB должны лежать на самом быстром диске (лучше всего отдельный RAID массив из NVMe SSD).
  • Количество файлов данных TempDB должно быть равно числу ядер процессора (максимум до 8 файлов).
  • Pre-sizing: установите одинаковый начальный размер для всех файлов TempDB и выключите авторасширение (Auto Growth), либо задайте фиксированный большой шаг (например, не в %, а 500 МБ).

3. Глобальные флаги трассировки (Trace Flags)

Существуют специфические флаги MS SQL, которые компания 1С рекомендует держать включенными для правильной трансляции запросов из платформы 1С в язык T-SQL:

  • TF 1118: (Для старых версий SQL) Выделение целых экстентов, устраняет конкуренцию за системные страницы. (В SQL 2016+ включено по умолчанию).
  • TF 1117: РавномерноеAuto Growth всех файлов в файловой группе. (Опять же, в новых версиях частично встроено).
  • TF 4199: Включает изменения оптимизатора запросов. Очень важно для 1С, так как сложные составные запросы 1С могут пугать оптимизатор SQL. Отсутствие этого флага часто вызывает странный выбор индексов и тормоза сложных отчетов.

4. Регулярное обслуживание индексов и статистики

1С сама по себе не обслуживает индексы в MS SQL Server. Если не настроить Maintenance Plan, за полгода база деградирует в производительности на 40-60% из-за фрагментации индексов и устаревшей статистики.

  • Обновление статистики: Настройте ночное обновление статистик полным сканированием (Full Scan). 1С генерирует непредсказуемые запросы, для которых критически важно понимать точное распределение данных.
  • Индексы: Настройте Weekly задание: при фрагментации 5-30% делать реорганизацию (Reorganize), а более 30% — полное перестроение (Rebuild).

5. Paralellism (MAXDOP)

Параметр Max Degree of Parallelism (MAXDOP) определяет, на сколько потоков SQL Server может распараллелить один запрос. В конфигурациях 1С (особенно ERP, УПП, УТ) 1С рекомендует устанавливать MAXDOP равным 1.

Это связано с тем, что транслятор 1С генерирует весьма специфичные запросы, и когда SQL пытается их распараллелить, затраты на координацию потоков превышают выгоду. Для многих рабочих баз 1С отключение распараллеливания (MAXDOP=1) парадоксальным образом ускоряет систему.

📚 Связанные статьи