Как ускорить «1С»? Советы от разработчиков СУБД
«»По мере роста базы и числа пользователей производительность «1С» все сильнее зависит от того, как СУБД планирует запросы, работает с временными таблицами, статистикой и блокировками. Российские разработчики уже не ограничиваются совместимостью с «1С»: они встраивают в СУБД специальные оптимизации и развивают инструменты, которые помогают быстрее находить причины замедлений.
Для 1С мало просто выбрать PostgreSQL
«1С: Предприятие 8» поддерживает несколько промышленных СУБД, включая Microsoft SQL Server, Oracle Database, PostgreSQL, Tantor Postgres, Postgres Pro и некоторые другие российские решения на базе PostgreSQL. Есть и специализированные редакции, рассчитанные именно на работу с «1С».
Вопрос давно не только в том, запустится ли система на той или иной СУБД. На крупной базе данных быстро становятся заметны вещи, которые в небольшой инсталляции можно не увидеть: сложные соединения, временные таблицы, блокировки, неточная статистика, большой поток одновременно работающих пользователей.
Особенно неприятны ошибки планировщика. Неудачный план выполнения запроса на большой базе способен замедлить уже не отдельную операцию, а целый участок прикладной системы. Поэтому часть оптимизаций, которые раньше приходилось делать вручную, разработчики постепенно переносят внутрь СУБД.
Временные таблицы и планировщик выходят на первый план
Одна из характерных особенностей «1С» — активное использование временных таблиц. При высокой нагрузке они создаются и удаляются тысячами, и накладные расходы на эти операции становятся заметны.
В Tantor Postgres издание Special Edition 1C (Tantor SE-1C, Tantor Postgres для 1С) отдельные доработки также связаны с временными таблицами, статистикой и параллельным выполнением запросов. Меняется и работа планировщика: оценка числа строк, выбор индексов, обработка запросов с большим количеством соединений, предварительная агрегация данных.
В Postgres Pro Enterprise для «1С» разработчики меняли работу блокировок и очистки временных таблиц, оптимизировали поиск по подстроке, сложные запросы с соединениями и подключение большого числа новых сеансов.
Конкуренция теперь идет уже не вокруг простой совместимости. Важнее, насколько хорошо СУБД учитывает особенности нагрузки «1С» и сколько проблем может снять без ручного вмешательства администратора.
Цифры ускорения, которые публикуют разработчики, здесь надо воспринимать осторожно. Результат зависит от конфигурации «1С», размера базы, оборудования и характера нагрузки. То, что хорошо сработало в одном тесте, необязательно даст тот же эффект у другого заказчика.
Стоимость считают не только в серверах и лицензиях
На большой инсталляции важна уже не только скорость отдельного запроса. Есть и стоимость эксплуатации — прежде всего время специалистов.
«В работе с «1С» производительность часто упирается не в какую-то одну операцию, а в совокупность особенностей самой платформы: временные таблицы, характер запросов, работу статистики и выбор плана выполнения. Поэтому мы не ограничиваемся настройкой PostgreSQL — разбираем реальные сценарии «1С» и дорабатываем СУБД там, где стандартного поведения недостаточно», — говорит Александр Симонов, технический руководитель направления развития 1С «Тантор Лабс».
Если администратор часами ищет причину замедления, вручную проверяет настройки и обслуживает десятки или сотни экземпляров СУБД, это тоже прямые расходы. Поэтому рядом с производительностью встают мониторинг, диагностика и централизованное управление.
Свои издержки появляются и тогда, когда инфраструктуру приходится собирать из нескольких компонентов. По словам Романа Севрука, менеджера по развитию решений СУБД компании К2Тех, точечные доработки точечные доработки и набор сторонних утилит заметно увеличивают затраты на интеграцию, поиск узких мест и сопровождение системы. Сократить эти расходы позволяет единый стек, в котором СУБД, мониторинг, резервное копирование и механизмы отказоустойчивости работают вместе.
Tantor развивает единый контур управления несколькими кластерами PostgreSQL: развитая графическая среда управления с ИИ-мониторингом, оценкой здоровья экземпляров, уведомлениями, конфигурированием, профилированием запросов. У Postgres Pro Enterprise для «1С» также есть собственные средства управления, мониторинга, резервного копирования и построения отказоустойчивого кластера.
«Мы смотрим не только на отдельные запросы, но и на весь сценарий работы «1С» под нагрузкой. Для этого регулярно прогоняем реальные операции на ERP, ЗУП и других конфигурациях, анализируем технологические журналы и планы запросов, воспроизводим проблемы на своих стендах. Такой подход позволяет находить узкие места и переносить решение непосредственно в СУБД, а не требовать от заказчика переписывать типовой код», — говорит Александр Симонов.
Тестировать все равно придется на своей базе
Даже подробный список оптимизаций не отвечает на главный вопрос заказчика: как конкретная СУБД поведет себя на его нагрузке.
И Tantor Labs, и Postgres Professional, например, проводили испытания Postgres Pro Enterprise своих СУБД для «1С» на тестах по методологии АНО «НЦК ИСУ» с 30 тыс. одновременно работающих пользователей «1С:ERP» и базой объемом 1 ТБ. Это хороший ориентир по масштабу, но не универсальная цифра, которую можно переносить на любую систему. .
Сравнивать результаты разных тестов напрямую тоже бессмысленно, если различаются оборудование, размер базы, конфигурация «1С» и сами сценарии работы.
Для крупных систем важна при этом не только максимальная скорость отдельной операции. Роман Севрук обращает внимание на стабильное и предсказуемое поведение системы в целом: точечные доработки под конкретную операцию могут дать локальный выигрыш, но несут риски для общей стабильности.
Поэтому выбор СУБД заканчивается не таблицей характеристик, а пилотом. На нем имеет смысл прогонять операции, которые действительно создают нагрузку у конкретного заказчика: массовый ввод документов, тяжелые отчеты, расчеты, закрытие месяца, одновременную работу большого числа пользователей.
Заодно становится понятно, сколько потребуется процессоров, памяти и дисковой производительности, как система ведет себя в пиковые часы и сколько времени занимает диагностика проблем.
На пилоте имеет смысл проверять и поведение системы при сбоях. Высокая производительность сама по себе недостаточна, отмечает Роман Севрук: для критичной системы нужны встроенные механизмы отказоустойчивости, резервирования и восстановления транзакций при нештатных ситуациях.
Автоматизация добирается до работы DBA
Отдельная задача — сократить ручную работу администратора базы данных.
«В большой инфраструктуре проблема уже не в том, умеет ли компания мониторить PostgreSQL. Проблема в том, сколько ручной работы требуется, чтобы понять, что происходит с сотнями баз. Для этого служит реализованный нами полноценный ИИ-мониторинг», — отмечает Александр Симонов.
Следующий шаг — инструменты, которые собирают данные о конкретной базе, находят аномалию, предполагают причину и предлагают инженеру, что проверить. Tantor связывает это направление с ИИ и развивает промышленный ИИ-помощник администратора, который уже формирует рекомендации на основе не только метрик, но и своих собственных исследовательских запросов. У Postgres Pro Enterprise Manager также появился ИИ-помощник AskPostgres.
Пока речь скорее о новом уровне автоматизации, чем о замене DBA. Для промышленной системы недостаточно получить рекомендацию — администратору надо понимать, откуда она взялась и что произойдет после ее применения.
Оптимизация становится частью самой СУБД
Специализированные СУБД для «1С» постепенно забирают внутрь себя то, что раньше приходилось исправлять уже после появления проблем: работу с временными таблицами, отдельные решения планировщика, оценку статистики, выбор индексов.
Полностью убрать ручную настройку это не позволяет. Две одинаковые СУБД могут вести себя по-разному на разных конфигурациях «1С» и профилях нагрузки.
Поэтому при выборе решения важнее не максимальная цифра из чужого теста, а поведение системы на собственных данных: насколько стабильно она держит нагрузку, как быстро удается найти причину замедления и сколько инженерного времени потом потребуется на ее эксплуатацию.





