Оптимизация 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С. Временные таблицы, сортировки, курсоры — всё проходит через неё.
- Количество файлов данных = количеству ядер процессора (но не более 8)
- Все файлы — одинакового размера
- Разместить на отдельном SSD (не на системном диске!)
- Начальный размер каждого файла: 1–4 ГБ
- Авторост: 512 МБ (не в процентах!)
🎯 Модель восстановления и бэкапы
По умолчанию база создается с моделью Full. Это означает, что лог транзакций растет бесконечно, пока не будет сделан бэкап лога.
- Full + регулярный бэкап лога — для баз, где критична каждая транзакция
- Simple — для тестовых и небольших баз (лог автоматически обрезается)
- Бэкап лога транзакций каждые 15–30 минут при модели Full
- Полный бэкап — ежедневно ночью
⚠️ Главная ошибка: Модель Full без бэкапа лога. Лог транзакций съедает весь диск, база останавливается.
🛠️ Обслуживание базы данных
- Обновление статистики —
EXEC sp_updatestats; - Реиндексация — для таблиц с фрагментацией > 30%
- Реорганизация — для таблиц с фрагментацией 10–30%
- Проверка целостности —
DBCC CHECKDB - Очистка процедурного кэша — при необходимости
Автоматизируйте через 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% гарантирован.
Получить консультацию →