Skip to main content

Настройка MSSQL под 1С

Настройки экземпляра SQL Server

Max Server Memory

Обязательно ограничить память SQL Server.

Причина:

  • SQL Server по умолчанию может занять практически всю доступную память.
  • Необходимо оставить память для ОС, служб 1С (ragent, rmngr, rphost), резервного копирования и других сервисов.

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

  • Не оставлять значение по умолчанию.
  • Выделять SQL Server не более 70–85% оперативной памяти сервера.
  • На серверах, где размещены и SQL Server, и сервер 1С, оставлять дополнительный запас памяти для процессов 1С.

MAXDOP

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

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

Причина:

  • Большинство нагрузок 1С являются OLTP-нагрузками.
  • Параллельные планы часто создают дополнительную конкуренцию за CPU.
  • MAXDOP = 1 обычно обеспечивает более стабильную производительность.

Cost Threshold for Parallelism

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

EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;

Причина:

  • Исключает попытки распараллеливания небольших запросов.
  • Особенно полезно, если MAXDOP впоследствии будет увеличен.

Optimize for Ad Hoc Workloads

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

EXEC sp_configure 'optimize for ad hoc workloads', 1;
RECONFIGURE;

Причина:

  • 1С генерирует большое количество динамических SQL-запросов.
  • Уменьшается засорение Plan Cache одноразовыми планами выполнения.

Backup Compression

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

EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;

Причина:

  • Снижает требования к дисковой подсистеме.
  • Уменьшает размер резервных копий.

Remote Admin Connections

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

EXEC sp_configure 'remote admin connections', 1;
RECONFIGURE;

Причина:

  • Позволяет подключиться через DAC при аварийных ситуациях.

Настройка TempDB

Количество файлов

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

  • От 1 до 8 одинаковых файлов данных.
  • Обычно количество файлов равно количеству логических CPU, но не более 8.
  • При отсутствии проблем допустимо начинать с 4 файлов.

Причина:

  • Снижается конкуренция за служебные страницы TempDB.

Размер файлов

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

  • Все файлы данных должны иметь одинаковый размер.
  • Все файлы должны иметь одинаковый FILEGROWTH.

Причина:

  • SQL Server равномерно распределяет нагрузку между файлами.

Авторасширение

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

  • Использовать фиксированный размер роста.
  • Не использовать процентный рост.

Пример:

FILEGROWTH = 512MB

Причина:

  • Предсказуемое потребление дискового пространства.
  • Отсутствие огромных скачков размера файлов.

Размещение TempDB

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

  • Размещать на быстром SSD/NVMe.
  • По возможности отдельно от пользовательских баз и журналов транзакций.

Причина:

  • TempDB активно используется SQL Server и 1С.

Настройка баз 1С

Recovery Model

Продуктивная база:

ALTER DATABASE [ИмяБазы]
SET RECOVERY FULL;

Причина:

  • Позволяет выполнять восстановление на момент времени.

Важно:

  • Требуется регулярный backup журнала транзакций.

Page Verify

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

ALTER DATABASE [ИмяБазы]
SET PAGE_VERIFY CHECKSUM;

Причина:

  • Позволяет обнаруживать повреждение страниц данных.

Статистики

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

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

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

Причина:

  • Оптимизатор SQL Server строит более качественные планы запросов.

Auto Shrink

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

ALTER DATABASE [ИмяБазы]
SET AUTO_SHRINK OFF;

Причина:

  • Автоматическое сжатие вызывает фрагментацию и дополнительную нагрузку.

Auto Close

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

ALTER DATABASE [ИмяБазы]
SET AUTO_CLOSE OFF;

Причина:

  • Исключаются лишние операции открытия и закрытия базы.

Рост файлов базы

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

  • Использовать фиксированный FILEGROWTH.
  • Не использовать процентный рост.

Пример:

FILEGROWTH = 1024MB

Причина:

  • Более предсказуемая работа файловой системы.
  • Меньше фрагментация файлов БД.

Дополнительные рекомендации

Lock Pages In Memory

Рекомендуется включать для службы SQL Server.

Причина:

  • Предотвращает вытеснение буферного кэша SQL Server операционной системой.

Антивирус

Исключить из проверки:

  • MDF
  • NDF
  • LDF
  • BAK
  • TRN
  • каталоги данных SQL Server

Причина:

  • Исключение лишней нагрузки на дисковую подсистему.

Обслуживание

Необходимо регулярно выполнять:

  • Backup Full
  • Backup Differential
  • Backup Log
  • Обновление статистик
  • Контроль фрагментации индексов
  • Проверку целостности (DBCC CHECKDB)

Что обычно проверяю первым при проблемах 1С

  1. Ожидания SQL Server (Wait Statistics).
  2. Размер и загрузку TempDB.
  3. Блокировки.
  4. Настройки памяти SQL Server.
  5. План выполнения проблемного запроса.
  6. Фрагментацию индексов.
  7. Актуальность статистик.
  8. Скорость дисковой подсистемы.