Аналитика

Postgres Pro 17.6: новые оптимизации для ускорения «1С»

Выпущена Postgres Pro Enterprise 17.6 с важными усовершенствованиями для «1С»

Надежная и эффективная работа платформы «1С:Предприятие» имеет ключевое значение для компаний. Разработчики Postgres Professional непрерывно совершенствуют ядро системы управления базами данных, устраняя архитектурные ограничения, которые возникают под интенсивными нагрузками, типичными для «1С». Недавно Postgres Professional представила обновленную СУБД Postgres Pro Enterprise 17.6, включив в нее новый набор улучшений для «1С».

Руководство по настройке Postgres Pro для 1С

Раньше специалистам приходилось искать сведения о корректной конфигурации СУБД по отдельным источникам. Теперь компания опубликовала официальный раздел документации под названием «Настройка Postgres Pro для решений 1С». Это свод проверенных рекомендаций (Best Practices), который решает множество вопросов, связанных с тонкой настройкой производительности и грамотной эксплуатацией кластера.

Сокращение объема служебных сообщений между процессами сервера

Администраторам, работающим с высоконагруженными базами данных, знакома проблема избыточного количества уведомлений об аннулировании кэша системного каталога. Ранее Postgres Professional уже оптимизировала этот механизм для таблиц, а в новом выпуске функциональность из версии 14.7 была расширена. Теперь Postgres Pro минимизирует подобные сообщения при создании и удалении индексов временных таблиц, а также при сборе статистики по ним.

Поскольку временные объекты доступны исключительно в пределах текущего сеанса, нет необходимости уведомлять другие процессы. Кроме того, специалисты Postgres Professional заменили циклические блокировки (spinlocks) в общей очереди сообщений на более производительные механизмы синхронизации. Это позволило устранить узкое место, возникавшее при интенсивной конкуренции между процессами.

Исключение блокировок индексов временных таблиц

Даже кратковременные блокировки при операциях с временными таблицами могут создавать значительную нагрузку на процессор. В новой версии Postgres Pro введён параметр skip_temp_rel_lock, который позволяет избегать установки блокировок не только для самих временных отношений, но и для связанных с ними индексов. Это закономерное развитие функционала (начиная с версии 17.4), обеспечивающее повышение производительности при частых операциях определения структуры данных (DDL).

Улучшение процесса очистки временных таблиц

Ранее операция усечения (TRUNCATE) выполнялась не самым эффективным способом: требовалось последовательное сканирование всего пула локальных буферов для каждого компонента отношения (основной таблицы, TOAST-таблицы, индексов).

Разработчики Postgres Professional модифицировали этот алгоритм. Теперь данные о буферах, предназначенных для очистки, собираются заранее, а сканирование буферного пула выполняется однократно для всех компонентов одновременно. Это ускоряет нетранзакционные операции TRUNCATE для временных таблиц и сокращает связанные с ними накладные расходы.

Повышение скорости поиска в динамических списках «1С»

В системе «1С» часто применяется поиск по части строки. Для оператора LIKE, используемого с полями типа mvarchar (предназначенными для совместимости с MS SQL), планировщик запросов иногда некорректно оценивал селективность и выбирал неэффективные планы выполнения. Специалисты Postgres Professional решили эту проблему: теперь оценка стоимости выполняется правильно, что позволяет оптимизатору чаще применять индексный поиск вместо полного сканирования таблицы.

Улучшение производительности запросов с Anti Join

Сложные запросы с конструкциями NOT EXISTS или NOT IN, которые преобразуются в операцию Anti Join, могли выполняться медленно из-за повторяющихся сканирований для одинаковых параметров.

В оптимизатор была добавлена возможность использовать мемоизацию (запоминание) результатов для узлов параметризованных соединений типа Anti Join. Это означает, что результаты вычислений для конкретных наборов параметров сохраняются и повторно используются, что исключает избыточные циклы обработки данных.

Улучшение механизма блокировок на стадии планирования запроса

При выполнении запросов, затрагивающих множество отношений, возникала высокая конкуренция за блокировки системных каталогов pg_attribute и pg_statistic. Разработчики Postgres Professional усовершенствовали этот механизм, сократив количество необходимых блокировок в ситуациях, когда информация отсутствует в кэше. Это обеспечивает более стабильную работу системы при одновременном подключении множества новых сессий (с пустыми кэшами), которые сразу начинают выполнять сложные запросы к таблицам с большим количеством индексов.

Улучшение работы Vacuum Analyze для таблиц системного каталога

Раньше в процессе анализа таблиц системного каталога происходило удаление файла pg_internal.init — ключевого кэша с данными о системных каталогах. Его повторное создание потребляло вычислительные мощности и могло приводить к замедлению установки соединений пользователей.

Теперь механизм пересмотрен: файл pg_internal.init больше не удаляется при анализе каталога, даже при частом обновлении статистики. Это обеспечивает быстрое и бесперебойное подключение новых сессий, независимо от активности фоновых служебных процессов.

Итоги

Описанные улучшения стали следствием детального изучения поведения Postgres Pro в условиях нагрузок, типичных для масштабных корпоративных инфраструктур. Компания Postgres Professional продолжает развивать продукт, уделяя особое внимание практическим задачам повышения производительности и обеспечения масштабируемости. Подробнее об этих и других возможностях, оптимизирующих взаимодействие с 1С:Предприятие, можно узнать на странице Postgres Pro Enterprise для 1С.

Рекламаerid:2W5zFJoe2CQРекламодатель: ООО «ППГ»ИНН/ОГРН: 7729445882/1157746074518Сайт: https://postgrespro.ru/
Поделиться:

0 Комментариев

Оставить комментарий

Обязательные поля помечены *
Ваш комментарий *
Категории