Перейти к основному контенту

Настройка 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)

Что даёт: Ускоряет создание базы данных, добавление файлов и журналов, увеличение размера файлов, восстановление базы данных.

Как включить:

  1. Откройте secpol.msc (Local Security Policy).

  2. Разверните Локальные политики → Назначение прав пользователей.

  3. Дважды кликните Выполнение задач по обслуживанию томов.

  4. Добавьте SID службы Database Engine (рекомендуется) или учётную запись службы.

  5. Перезапустите службу 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» .

Как включить:

  1. В меню Пуск → Выполнить введите gpedit.msc.

  2. Разверните: Конфигурация компьютера → Конфигурация Windows → Настройки безопасности → Локальные политики → Назначение прав пользователя.

  3. Дважды кликните Блокировка страниц в памяти.

  4. Добавьте SID службы Database Engine .

  5. Перезапустите SQL Server.

Проверка:

sql
SELECT sql_memory_model_desc FROM sys.dm_os_sys_info;
-- Должно вернуть LOCK_PAGES

1.3. Установите режим электропитания «Высокая производительность»

Что даёт: Предотвращает занижение частоты процессора ОС.

Как включить:

  1. Панель управления → Электропитание → Схемы управления электропитанием.

  2. Установите значение Высокая производительность.

Примечание: 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 сервером СУБД.

Формула расчёта:

text
Память для SQL Server = Общая RAM – Память для ОС – Память для сервера 1С

Современные рекомендации:

  • Для ОС: 4 ГБ (или 20–25% RAM, если сервер выделен только под SQL)

  • Для сервера 1С: сумма потребления ragentrmngrrphost в пик нагрузки + 1–1,5 ГБ на каждый процесс rphost 

Как настроить:

  1. Management Studio → Свойства сервера → вкладка Память.

  2. Укажите значение параметра Максимальный размер памяти сервера.


2.2. Настройте Max Degree of Parallelism (MAXDOP)

Что даёт: Определяет, во сколько потоков может выполняться один запрос. Для баз с нагрузкой 1С рекомендуется MAXDOP = 1 .

Почему важно: При высоких значениях MAXDOP возникают ожидания CXPACKET и CXCONSUMER, когда один сложный отчёт блокирует процессорные ядра и вытесняет оперативные транзакции .

Как настроить:

  1. Management Studio → Свойства сервера → вкладка Дополнительно.

  2. Установите Max Degree of Parallelism = 1.


2.3. Настройте Cost Threshold for Parallelism

Что даёт: Порог, при котором запрос распараллеливается. Значение по умолчанию (5) устарело .

Рекомендация: Установите значение 50–100, чтобы избежать распараллеливания простых запросов.

Как настроить:

sql
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 КБ 

Скрипт для переноса:

sql
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

Скрипт для выявления проблемных сессий:

sql
-- Диагностика ожиданий на страницах аллокации 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 МБ

  • Не используйте процентное автовыращивание!

Как настроить:

  1. Management Studio → Свойства базы → вкладка Файлы.

  2. Напротив каждого файла в колонке Автовувеличение укажите значение в МБ.

Для применения ко всем новым базам настройте служебную базу 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С .

Как включить:

sql
ALTER DATABASE [ИмяБазы] SET READ_COMMITTED_SNAPSHOT ON;

Внимание: Требует хорошо оптимизированной TempDB.


Часть 5. Обслуживание и мониторинг

5.1. Регламентное обслуживание индексов

Что даёт: Фрагментация индексов > 25% резко снижает производительность .

Рекомендации:

  • Ежедневно: Дефрагментация индексов и обновление статистики (не требует отключения пользователей)

  • Еженедельно: Полная переиндексация с блокировкой БД (в нерабочее время) 


5.2. Мониторинг TempDB при закрытии месяца

Что даёт: Закрытие месяца часто замедляется из-за переполнения TempDB неоптимальными запросами .

Диагностический скрипт:

sql
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. Отключите сжатие данных для каталогов с файлами базы

При сжатии ОС дополнительно обрабатывает файлы при модификации, что замедляет запись.

Как отключить:

  1. Свойства каталога → вкладка Общие → кнопка Другие.

  2. Снимите флаг Сжимать содержимое для экономии места на диске.


6.3. Включите Shared Memory (если сервер 1С на том же компьютере)

Как включить:

  1. Диспетчер конфигурации SQL Server → SQL Native Client → Клиентские протоколы → Общая память → Включено.

  2. Протокол Именованные каналы выключите.

После всех настроек перезапустите службу 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, выбора правильной сортировки и порога параллелизма.

Для поддержания стабильной работы базы данных важно также не забывать о регулярном обслуживании: обновлении статистики и перестройке индексов.


Источники и дополнительные материалы: