Расширение pgpro_multiplan позволяет «заморозить» определенный
план выполнения запроса (или привязать план к целой группе
запросов) и при дальнейшем исполнении запроса использовать этот
план вместо того, который построил бы планировщик. Стабилизация
некоторых планов полезна, например, при обновлении сервера
(в новых версиях планировщик в среднем работает лучше, но планы
небольшой части запросов могут измениться и в худшую сторону),
или для оптимизации отдельного запроса, когда не удается иными
средствами убедить планировщик построить нужный план.
Замороженные планы сохраняются в файлы в отдельном каталоге,
а работа с ними происходит в разделяемой памяти. Таким образом,
в отличие от обычного локального кеша разобранных запросов и их
планов, кеш замороженных планов — общий для всех сеансов.
Планы хранятся в файлах, а не в таблицах БД, чтобы обеспечить
совместимость расширения с системой 1С. Обратной стороной такого
решения является то, что замороженные планы не передаются
с мастера на реплику автоматически: если это необходимо, требуется
включить параметр pgpro_multiplan.wal_rw на обоих серверах.
До версии Postgres Pro Enterprise 16 включительно в продукте
присутствует расширение sr_plan с аналогичным функционалом.
Начиная с версии 15, оно считается устаревшим и вместо него
рекомендуется использовать расширение pgpro_multiplan.
3
Модуль pgpro_multiplan
Стабилизация планов выполнения запросов
заморозка плана для конкретного запроса или группы запросов
разделяемый кеш замороженных планов
планы сохраняются в файлах сервера,
для репликации: pgpro_multiplan.wal_rw
Заменяет устаревшее расширение sr_plan