Вопрос совместимости актуальных версий СУБД с платформой «1С:Предприятие» всегда стоит остро для системных администраторов и специалистов по производительности. С выходом PostgreSQL 17 сообщество ожидало официального подтверждения от вендора. В этой статье мы подробно разберем, начиная с каких версий платформы реализована поддержка новой СУБД, какие технические преимущества это дает и как правильно настроить сервер для достижения максимальной эффективности.
Проанализируем текущую ситуацию с релизами. Официальная поддержка PostgreSQL 17 была добавлена в технологическую платформу 1С:Предприятие 8.3.26. Согласно документации к версии 8.3.26.1521 и выше, а также в перспективной ветке 8.3.27, реализована полная совместимость со следующими редакциями:
Рассмотрим важный нюанс: хотя в первоначальных описаниях версии 8.3.26 поддержка могла не упоминаться, она была добавлена в секцию изменений, выполненных после публикации. Это означает, что для стабильной работы с 17-й версией СУБД необходимо использовать самые актуальные исправления (patch-set) указанных веток платформы.
Переход на 17-ю версию — это не просто формальное обновление номера. Разберем по шагам, какие внутренние механизмы СУБД были оптимизированы специально под паттерны нагрузки, создаваемые 1С.
Оптимизация работы с временными таблицами
Выясним причину, по которой 1С часто вызывает нагрузку на CPU даже при отсутствии сложных запросов. Платформа генерирует огромное количество временных таблиц. В PostgreSQL 17 внедрен параметр skip_temp_rel_lock, который позволяет отключать блокировки для индексов временных таблиц. Поскольку эти объекты видны только текущему сеансу, блокировки для них избыточны. Их отключение существенно снижает накладные расходы на управление памятью и процессором в высоконагруженных системах.
Новый алгоритм VACUUM
Процесс очистки (VACUUM) в 17-й версии претерпел фундаментальные изменения. Теперь управление памятью для хранения идентификаторов мертвых строк оптимизировано так, что потребление RAM сократилось почти в 20 раз. Для баз 1С объемом в несколько терабайт это критично: фоновое обслуживание теперь практически не конкурирует с активными пользователями за кэш и оперативную память сервера.
Проанализируем результаты тестирования на тяжелых учетных операциях. Одной из главных проблем 1С в связке с PostgreSQL долгое время была неверная оценка селективности данных в столбцах с неравномерным распределением. В 17-й версии (особенно в редакции Enterprise) были улучшены алгоритмы планировщика запросов.
В ходе практических тестов было зафиксировано, что операция Закрытие месяца может выполняться в несколько раз быстрее. Это достигается благодаря:
IN и ANY, которые платформа 1С активно использует при построении запросов через механизм RLS (разграничение прав доступа).Посмотрим на изменения в механизмах копий БД (версия 2), реализованных в платформе 8.3.26. Теперь для работы встроенной репликации требуется обязательная настройка параметра wal_level=logical в конфигурационном файле postgresql.conf. PostgreSQL 17 предлагает более совершенный механизм логической репликации, что делает обновление копий данных более отказоустойчивым.
Также разберем по шагам внедрение инкрементального бэкапа. С помощью штатной утилиты pg_basebackup в 17-й версии теперь можно создавать нативные инкрементальные копии. Это позволяет администраторам 1С сократить время ежедневного резервного копирования и существенно уменьшить объем занимаемого места на дисковых массивах.
Если вы планируете миграцию на PostgreSQL 17, выполните следующие действия:
ANALYZE для всех таблиц, чтобы обновить статистику под новый формат планировщика 17-й версии.Подводя итог, можно сказать, что связка 1С + PostgreSQL 17 является наиболее производительным решением на текущий момент, обеспечивая прирост скорости до 20–30% в задачах, связанных с интенсивной работой с индексами и временными объектами.