Настройка MS SQL Server для 1С: актуальный чек-лист на 2026 год
Обновлённая версия на основе оригинального руководства 2016 года с учётом современных реалий
Важно: Приведённые рекомендации следует адаптировать под конкретную конфигурацию сервера и нагрузку. Это не универсальные правила, а базовая отправная точка для оптимизации.
Что изменилось с 2016 года
За прошедшие годы ключевые изменения коснулись следующих областей:
-
Рекомендуемые версии SQL Server: переход на SQL Server 2019/2022 (и 2025 для новых внедрений)
-
Настройка TempDB: от простого переноса на отдельный диск к созданию множества файлов данных
-
Оптимизация параллелизма: пересмотр значений MAXDOP и Cost Threshold for Parallelism
-
Сортировка баз данных: рекомендации по использованию Latin1_General_100_CI_AS
Часть 1. Базовые настройки сервера
1.1. Включите мгновенную инициализацию файлов (Instant File Initialization)
Что даёт: Ускоряет создание базы данных, добавление файлов и журналов, увеличение размера файлов, восстановление базы данных.
Как включить:
-
Откройте
secpol.msc(Local Security Policy). -
Разверните Локальные политики → Назначение прав пользователей.
-
Дважды кликните Выполнение задач по обслуживанию томов.
-
Добавьте SID службы Database Engine (рекомендуется) или учётную запись службы.
-
Перезапустите службу SQL Server.
Новое в SQL Server 2022+: Мгновенная инициализация теперь работает и для файлов журнала транзакций при авторасширении до 64 МБ .
Проверка: В журнале ошибок SQL Server при запуске появится сообщение Using locked pages in the memory manager.
1.2. Включите «Блокировка страниц в памяти» (Lock Pages in Memory)
Что даёт: Запрещает системе отправлять страницы данных SQL Server в виртуальную память на диске. Критически важно для серверов с большим объёмом RAM — без этой настройки возможны ошибки «non-yielding scheduler» .
Как включить:
-
В меню Пуск → Выполнить введите
gpedit.msc. -
Разверните: Конфигурация компьютера → Конфигурация Windows → Настройки безопасности → Локальные политики → Назначение прав пользователя.
-
Дважды кликните Блокировка страниц в памяти.
-
Добавьте SID службы Database Engine .
-
Перезапустите SQL Server.
Проверка:
SELECT sql_memory_model_desc FROM sys.dm_os_sys_info; -- Должно вернуть LOCK_PAGES
1.3. Установите режим электропитания «Высокая производительность»
Что даёт: Предотвращает занижение частоты процессора ОС.
Как включить:
-
Панель управления → Электропитание → Схемы управления электропитанием.
-
Установите значение Высокая производительность.
Примечание: Turbo Boost в BIOS — на современных серверных платформах обычно включён по умолчанию, отдельная настройка не требуется.
1.4. Отключите ненужные службы SQL Server
Что даёт: Освобождает ресурсы для основной службы СУБД .
Оставьте только:
-
SQL Server (sqlservr.exe)
-
SQL Server Agent (SQLAGENT.exe)
-
SQL Writer (sqlwriter.exe)
Отключите:
-
FullText Search (у 1С собственный механизм полнотекстового поиска)
-
Integration Services
-
Analysis Services (если не используются)
Часть 2. Настройки памяти и параллелизма
2.1. Ограничьте максимальный объём памяти (Max Server Memory)
Что даёт: Предотвращает потребление всей RAM сервером СУБД.
Формула расчёта:
Память для SQL Server = Общая RAM – Память для ОС – Память для сервера 1С
Современные рекомендации:
-
Для ОС: 4 ГБ (или 20–25% RAM, если сервер выделен только под SQL)
-
Для сервера 1С: сумма потребления
ragent,rmngr,rphostв пик нагрузки + 1–1,5 ГБ на каждый процесс rphost
Как настроить:
-
Management Studio → Свойства сервера → вкладка Память.
-
Укажите значение параметра Максимальный размер памяти сервера.
2.2. Настройте Max Degree of Parallelism (MAXDOP)
Что даёт: Определяет, во сколько потоков может выполняться один запрос. Для баз с нагрузкой 1С рекомендуется MAXDOP = 1 .
Почему важно: При высоких значениях MAXDOP возникают ожидания CXPACKET и CXCONSUMER, когда один сложный отчёт блокирует процессорные ядра и вытесняет оперативные транзакции .
Как настроить:
-
Management Studio → Свойства сервера → вкладка Дополнительно.
-
Установите Max Degree of Parallelism = 1.
2.3. Настройте Cost Threshold for Parallelism
Что даёт: Порог, при котором запрос распараллеливается. Значение по умолчанию (5) устарело .
Рекомендация: Установите значение 50–100, чтобы избежать распараллеливания простых запросов.
Как настроить:
EXEC sp_configure 'cost threshold for parallelism', 50; RECONFIGURE;
2.4. Настройте Maximum Worker Threads
Что даёт: По умолчанию сервер не создаёт больше 255 потоков, чего может не хватать при высокой нагрузке.
Рекомендация: Установите значение 2048 .
Часть 3. Оптимизация TempDB
3.1. Создайте несколько файлов данных TempDB
Что даёт: Устраняет контеншн на страницах PFS/GAM, который возникает при одновременном создании временных таблиц сотнями сессий 1С .
Правила конфигурирования:
| Количество ядер CPU | Количество файлов данных |
|---|---|
| ≤ 8 | Ровно столько, сколько ядер |
| > 8 | Начните с 8, при сохранении ожиданий увеличивайте кратно 4 (12, 16...) |
Требования:
-
Все файлы должны иметь одинаковый начальный размер (например, 8 файлов по 10 ГБ)
-
Фиксированный шаг авторасширения в мегабайтах (например, 1024 МБ), но не в процентах
3.2. Разместите TempDB на быстром накопителе
Что даёт: TempDB используется всеми базами для временных таблиц, промежуточных расчётов, версий строк при RCSI .
Рекомендации:
-
Отдельный RAID 10 из NVMe PCIe 4.0/5.0 накопителей
-
Форматирование тома NTFS/ReFS с размером кластера 64 КБ
Скрипт для переноса:
USE master GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf') GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf') GO
3.3. Диагностика контеншна TempDB
Скрипт для выявления проблемных сессий:
-- Диагностика ожиданий на страницах аллокации tempdb
SELECT
session_id,
wait_type,
wait_duration_ms,
resource_description,
blocking_session_id
FROM sys.dm_os_waiting_tasks
WHERE wait_type LIKE 'PAGELATCH_%'
AND resource_description LIKE '2:%'; -- База данных 2 = tempdb
Если ожидания PAGELATCH_UP или PAGELATCH_EX сохраняются — увеличьте количество файлов данных .
Часть 4. Настройки рабочих баз данных
4.1. Настройте автовыращивание файлов
Что даёт: Слишком маленький шаг авторасширения приводит к частому расширению файлов и потере времени .
Рекомендации:
-
Для файлов данных: 200–512 МБ или 512 МБ – 5 ГБ для крупных баз
-
Для файлов логов: 50–200 МБ
-
Не используйте процентное автовыращивание!
Как настроить:
-
Management Studio → Свойства базы → вкладка Файлы.
-
Напротив каждого файла в колонке Автовувеличение укажите значение в МБ.
Для применения ко всем новым базам настройте служебную базу model.
4.2. Разнесите файлы данных (.mdf) и логов (.ldf) на разные диски
Что даёт: Параллельная работа с файлами повышает скорость дисковых операций. Лучше всего подходят SSD .
4.3. Используйте правильную сортировку (Collation)
Что даёт: Устаревшие настройки сортировки могут приводить к ошибкам при сравнении строк и индексации.
Рекомендация для новых баз 1С:
-
Latin1_General_100_CI_AS(современный стандарт) -
Cyrillic_General_100_CI_AS(альтернатива)
4.4. Рассмотрите включение RCSI (READ_COMMITTED_SNAPSHOT)
Что даёт: Снижает количество блокировок при чтении, что особенно актуально для многопользовательских систем на 1С .
Как включить:
ALTER DATABASE [ИмяБазы] SET READ_COMMITTED_SNAPSHOT ON;
Внимание: Требует хорошо оптимизированной TempDB.
Часть 5. Обслуживание и мониторинг
5.1. Регламентное обслуживание индексов
Что даёт: Фрагментация индексов > 25% резко снижает производительность .
Рекомендации:
-
Ежедневно: Дефрагментация индексов и обновление статистики (не требует отключения пользователей)
-
Еженедельно: Полная переиндексация с блокировкой БД (в нерабочее время)
5.2. Мониторинг TempDB при закрытии месяца
Что даёт: Закрытие месяца часто замедляется из-за переполнения TempDB неоптимальными запросами .
Диагностический скрипт:
SELECT
session_id,
SUM(internal_objects_alloc_page_count) AS alloc_pages,
SUM(internal_objects_dealloc_page_count) AS dealloc_pages,
SUM(user_objects_alloc_page_count) AS user_alloc_pages
FROM sys.dm_db_session_space_usage
GROUP BY session_id
ORDER BY alloc_pages DESC;
Если alloc_pages превышает 500 000 — требуется пересмотр плана запроса .
Признаки проблемы:
-
Размер TempDB растёт быстрее 1 ГБ в минуту
-
Процессор загружен менее чем на 30%
5.3. Настройте резервное копирование
Что даёт: Резервные копии необходимо делать средствами самой СУБД, а не сторонними системами .
Часть 6. Дополнительные рекомендации
6.1. Исключите каталоги баз данных из антивирусного сканирования
Антивирусное сканирование файлов базы может сильно замедлить работу СУБД. В идеале антивирус на сервере СУБД вообще не устанавливать.
6.2. Отключите сжатие данных для каталогов с файлами базы
При сжатии ОС дополнительно обрабатывает файлы при модификации, что замедляет запись.
Как отключить:
-
Свойства каталога → вкладка Общие → кнопка Другие.
-
Снимите флаг Сжимать содержимое для экономии места на диске.
6.3. Включите Shared Memory (если сервер 1С на том же компьютере)
Как включить:
-
Диспетчер конфигурации SQL Server → SQL Native Client → Клиентские протоколы → Общая память → Включено.
-
Протокол Именованные каналы выключите.
После всех настроек перезапустите службу MS SQL Server.
Сводная таблица ключевых параметров
| Параметр | Рекомендуемое значение |
|---|---|
| Max Server Memory | Общая RAM – 4 ГБ (ОС) – память 1С |
| Max Degree of Parallelism | 1 |
| Cost Threshold for Parallelism | 50–100 |
| Maximum Worker Threads | 2048 |
| Файлы данных TempDB | По количеству ядер (мин. 8) |
| Автовыращивание данных | 512 МБ – 5 ГБ |
| Автовыращивание логов | 50–200 МБ |
| Сортировка | Latin1_General_100_CI_AS |
Рекомендуемые версии SQL Server на 2026 год
| Версия | Статус |
|---|---|
| SQL Server 2019 | Стабильная, проверенная |
| SQL Server 2022 | Рекомендуемая |
| SQL Server 2025 | Для новых внедрений |
Старые версии (2016 и ранее) приближаются к концу жизненного цикла и требуют расширенной поддержки.
Заключение
Данный чек-лист представляет собой обновлённую версию рекомендаций 2016 года с учётом современных реалий. Ключевые изменения касаются используемых версий SQL Server, тонкой настройки TempDB, выбора правильной сортировки и порога параллелизма.
Для поддержания стабильной работы базы данных важно также не забывать о регулярном обслуживании: обновлении статистики и перестройке индексов.
Источники и дополнительные материалы:
-
Оригинальное руководство: Насипов Фарит и Евгений Гилев, ООО «ОдинКурс», 2016
Нет комментариев для отображения
Нет комментариев для отображения