Вопрос выбора версии СУБД для систем 1С:Предприятие всегда остается актуальным. Многие администраторы придерживаются правила «работает — не трогай», однако технологический прогресс в области систем управления базами данных предоставляет инструменты, которые могут существенно ускорить работу учетных систем без изменения программного кода 1С. В данной статье мы проанализируем целесообразность перехода на MS SQL Server 2019, разберем технические преимущества этой версии и выясним, на какой прирост производительности можно рассчитывать.
Перед тем как приступать к обновлению, необходимо убедиться, что ваша версия платформы 1С:Предприятие поддерживает работу с SQL Server 2019. Официальная поддержка этой СУБД была добавлена в следующих версиях:
Если ваша платформа соответствует этим требованиям, переход технически возможен и безопасен. Рассмотрим подробнее, какие именно механизмы делают версию 2019 привлекательной для высоконагруженных систем 1С. Для предварительной проверки данных перед миграцией можно использовать обработку для поиска проблемных дат и широких индексов перед переносом на MS SQL Server.
В отличие от предыдущих версий (2016 и 2017), MS SQL Server 2019 представил комплекс технологий под общим названием Intelligent Query Processing (IQP). Проанализируем самые важные из них в контексте 1С:
1. Batch Mode on Rowstore (Пакетный режим для строковых хранилищ). Ранее пакетная обработка данных была доступна только при использовании Columnstore индексов. В версии 2019 SQL Server может обрабатывать данные пакетами (по 900 строк) даже в обычных таблицах. Это критически важно для тяжелых аналитических отчетов и запросов со сложными соединениями, которые часто встречаются в 1С:ERP или комплексных конфигурациях.
2. Memory Grant Feedback (Обратная связь по выделению памяти). Одной из частых проблем 1С является неоптимальное выделение памяти под запрос. Если SQL Server выделил слишком мало памяти, данные сбрасываются в медленную TempDB. Если слишком много — память простаивает. SQL 2019 «запоминает» фактическое потребление памяти запросом и при следующем запуске корректирует выделение ресурсов.
3. Memory-optimized TempDB Metadata. Системы 1С крайне интенсивно используют временные таблицы. В старых версиях SQL Server возникали задержки (контенция) на системных страницах TempDB при массовом создании и удалении мелких таблиц. В 2019-й версии метаданные TempDB могут быть перенесены в оперативную память, что устраняет это узкое место.
4. Accelerated Database Recovery (ADR). Эта функция кардинально меняет работу с логом транзакций. Если происходит сбой или отмена длительной транзакции (например, при групповом перепроведении документов), откат в версии 2019 происходит практически мгновенно, не блокируя базу на длительное время.
Рассмотрим результаты практических тестов. При переходе со старых версий (например, SQL 2014) средний прирост производительности на задачах 1С составляет порядка 15-30%. При переходе с версии 2016 на 2019 можно ожидать ускорения в пределах 10-15% на штатных операциях и более значительного эффекта на сложных расчетах.
Выясним причину возможных замедлений. В редких случаях (около 5-7% падения скорости на конкретных отчетах) виноват новый Cardinality Estimator (оценщик количества строк). Рассмотрим, как решить эту проблему, не отказываясь от преимуществ новой версии.
После установки MS SQL Server 2019 и миграции базы 1С необходимо выполнить несколько обязательных шагов, чтобы задействовать все возможности СУБД:
UPDATE STATISTICS [ИмяВашейБазы];
DBCC FREEPROCCACHE;
Scoped Configurations. В свойствах базы найдите параметр Legacy Cardinality Estimation и установите его в ON, сохранив при этом уровень совместимости 150 для работы остальных функций IQP.Посмотрим на ситуацию со стороны аппаратного обеспечения. Если используется сервер уровня i5 с 32 ГБ оперативной памяти, важно помнить, что SQL Server 2019 более агрессивно работает с кэшированием. Рассмотрим рекомендации по настройке:
Обязательно ограничьте параметр Max Server Memory. Если 1С и SQL работают на одной машине, оставьте операционной системе и серверу приложений 1С не менее 6–8 ГБ памяти, остальное отдайте SQL Server. Это предотвратит «вымывание» памяти и обеспечит стабильную работу обоих компонентов.
Стоит ли обновляться? Да, стоит, если ваша платформа 1С выше версии 8.3.15. Переход на MS SQL Server 2019 — это не просто смена версии, а получение доступа к современным методам оптимизации запросов, которые особенно эффективны для сложных структур данных 1С.
Разберем краткий алгоритм действий:
Compatibility Level до 150 и выполнить UPDATE STATISTICS.Помните, что версия 2019 на данный момент является одной из самых стабильных и проверенных в эксплуатации с 1С, превосходя по эффективности механизмов оптимизации как 2016, так и 2017 версии. Для комплексного аудита параметров базы и сервера после перехода можно использовать инструмент для чек-апа СУБД под 1С.