Вопрос выбора версии СУБД для сервера 1С всегда вызывает живые дискуссии. Многие придерживаются правила «работает — не трогай», однако в случае с PostgreSQL 9.6 ситуация требует более детального анализа. Рассмотрим, почему простого «нормального функционирования» старой версии недостаточно для современного предприятия и какие технические преимущества мы получим при переходе на версии 11 или 12.
Первое, что мы должны проанализировать — это официальный статус версии. PostgreSQL 9.6 официально достигла стадии End of Life (EOL) еще в конце 2021 года. Разберем, что это означает на практике для администратора 1С:
Выясним, как обновление влияет на производительность. Одним из самых значимых изменений в PostgreSQL 12 стала глубокая переработка B-tree индексов. Проанализируем, почему это критично для 1С:
Платформа 1С:Предприятие при создании метаданных генерирует огромное количество индексов для каждой таблицы. В старых версиях (до 12) индексы имели тенденцию к «раздуванию» (bloat), занимая лишнее место и замедляя поиск. В PostgreSQL 12 механизмы переиспользования свободного места внутри страниц индекса стали значительно эффективнее. Рассмотрим основные плюсы:
Разберем один из самых важных механизмов ускорения работы — параллелизм. В версии 9.6 возможности параллельного выполнения запросов были зачаточными. Начиная с 10-й и особенно в 11-12 версиях, PostgreSQL научился задействовать несколько ядер процессора для выполнения одного тяжелого SQL-запроса.
Посмотрим, на что это влияет в контексте 1С:
Parallel Sequential Scan или Parallel Hash Join, распределив нагрузку между свободными ядрами.CREATE INDEX стала параллельной, что существенно сокращает время обслуживания базы данных (реиндексации).Проблема «мусора» (мертвых кортежей) в PostgreSQL — это вечная головная боль администраторов. Платформа 1С постоянно создает, изменяет и удаляет записи (особенно во временных таблицах). В новых версиях механизм Autovacuum был существенно оптимизирован.
Проанализируем ситуацию: в версии 9.6 очистка могла не успевать за интенсивной записью в 1С, что приводило к деградации производительности. В версиях 11 и 12 алгоритмы стали более агрессивными и интеллектуальными, что минимизирует вероятность блокировок процессов очистки и снижает нагрузку на CPU во время работы вакуума.
Поскольку автор вопроса использует сборки PostgreSQL-1C, важно понимать, что компания «1С» вносит свои изменения в исходный код СУБД. В версиях 11.5-12.1C реализованы улучшенные механизмы работы с временными таблицами. Рассмотрим, как это работает:
1С активно использует Temporary Tables для выполнения сложных запросов. В старых версиях PostgreSQL создание большого количества временных таблиц могло вызывать перегрузку системных каталогов. В новых версиях (особенно в сборках от 1С и Postgres Pro) эта проблема решена более эффективно. Также улучшена работа с блокировками, что снижает частоту возникновения ошибок deadlock при одновременной работе большого количества пользователей.
Начиная с 11-й версии в PostgreSQL появилась поддержка Just-In-Time (JIT) компиляции запросов. Рассмотрим, стоит ли её использовать:
JIT позволяет компилировать части SQL-запросов в машинный код «на лету». Для очень длинных и сложных запросов в 1С это может дать прирост скорости до 15-25%. Однако стоит помнить, что на коротких запросах JIT может внести накладные расходы. В новых версиях планировщик стал лучше определять, когда JIT действительно необходим.
Автор указал версию платформы 8.3.15.1830. Это важный момент. Хотя эта платформа поддерживает PostgreSQL 11 и 12, необходимо учитывать следующее:
Если мы приняли решение об обновлении, разберем шаги, которые необходимо предпринять:
pg_dump или делаем копию на уровне файловой системы (с остановкой службы)..dt файл и загрузка его в новую пустую базу на PostgreSQL 12.postgresql.conf, учитывая новые параметры, такие как jit, max_parallel_workers_per_gather и обновленные значения maintenance_work_mem.Резюме: Обновление с PostgreSQL 9.6 до 12.1C является крайне оправданным. Мы получаем не только исправление ошибок, но и реальный прирост скорости за счет оптимизации индексов, внедрения параллелизма и лучшей работы с временными таблицами, что критически важно для высоконагруженных систем на базе 1С:Предприятие.