← База знаний

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

MS SQL Server — основная СУБД для 1С в корпоративном сегменте. Но «из коробки» SQL Server настроен для общих задач, а не специально для 1С. Правильная настройка дает прирост производительности от 30% до 300%.

🔍 Базовые параметры сервера

1. Оперативная память (Max Server Memory)

SQL Server по умолчанию захватывает всю доступную память, оставляя ОС и серверу 1С без ресурсов.

Формула расчета:
  • ОС Windows: оставить 4 ГБ
  • Сервер 1С (rphost): 2–4 ГБ на каждый рабочий процесс
  • Остальное — для SQL Server
  • Пример: Сервер 32 ГБ → ОС 4 ГБ + 1С 8 ГБ (2 rphost) = Max Server Memory = 20 ГБ

2. MAXDOP (Max Degree of Parallelism)

1С не умеет работать с параллельными планами запросов. Установите MAXDOP = 1.

EXEC sp_configure 'max degree of parallelism', 1; RECONFIGURE;

3. Cost Threshold for Parallelism

Даже с MAXDOP = 1 рекомендуется поднять порог: Cost Threshold = 50 (по умолчанию 5).

⚡ Настройка TempDB

TempDB — «поле боя» для 1С. Временные таблицы, сортировки, курсоры — всё проходит через неё.

Правила настройки TempDB:
  1. Количество файлов данных = количеству ядер процессора (но не более 8)
  2. Все файлы — одинакового размера
  3. Разместить на отдельном SSD (не на системном диске!)
  4. Начальный размер каждого файла: 1–4 ГБ
  5. Авторост: 512 МБ (не в процентах!)

🎯 Модель восстановления и бэкапы

По умолчанию база создается с моделью Full. Это означает, что лог транзакций растет бесконечно, пока не будет сделан бэкап лога.

Рекомендации:
  • Full + регулярный бэкап лога — для баз, где критична каждая транзакция
  • Simple — для тестовых и небольших баз (лог автоматически обрезается)
  • Бэкап лога транзакций каждые 15–30 минут при модели Full
  • Полный бэкап — ежедневно ночью

⚠️ Главная ошибка: Модель Full без бэкапа лога. Лог транзакций съедает весь диск, база останавливается.

🛠️ Обслуживание базы данных

Еженедельный план обслуживания:
  1. Обновление статистикиEXEC sp_updatestats;
  2. Реиндексация — для таблиц с фрагментацией > 30%
  3. Реорганизация — для таблиц с фрагментацией 10–30%
  4. Проверка целостностиDBCC CHECKDB
  5. Очистка процедурного кэша — при необходимости

Автоматизируйте через Maintenance Plan или скрипт Ola Hallengren (ola.hallengren.com).

📋 Полный чек-лист из 15 пунктов

Проверьте все пункты:
  • ✓ Max Server Memory — рассчитан правильно
  • ✓ MAXDOP = 1
  • ✓ Cost Threshold for Parallelism = 50
  • ✓ TempDB — файлы по количеству ядер на SSD
  • ✓ Модель восстановления выбрана осознанно
  • ✓ Бэкап лога настроен (если Full)
  • ✓ База данных на SSD (не HDD!)
  • ✓ Автообновление статистики включено
  • ✓ Еженедельная реиндексация настроена
  • ✓ Instant File Initialization включена
  • ✓ Lock Pages in Memory — если > 16 ГБ RAM
  • ✓ Сжатие бэкапов включено
  • ✓ Антивирус — исключения на папки SQL
  • ✓ Энергосберегающий режим отключен (High Performance)
  • ✓ Последний Service Pack / CU установлен

Нужна настройка MS SQL для 1С?

Проведу аудит вашего SQL Server и настрою его специально под 1С. Прирост производительности от 30% гарантирован.

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

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