Управление планами запросов

Критичные бизнес-приложения требуют постоянного контроля и корректировки плана выполнения запросов. Проблема усложняется тем, что ресурсы, расходуемые на выполнение запроса, могут существенно отличаться для незначительных изменений в плане выполнения запросов. Таким образом, мы работаем с учетом постоянного риска выбора неверного плана и, как следствие, падения производительности всей системы после сбора новых статистических данных. DBA хотели бы защитить себя от этого риска путем «замораживания» планов для критично важных запросов.

Компания Postgres Professional предоставляет расширение sr_plan, которое позволяет «заморозить» выбранный план выполнения запросов. На сегодняшний день здесь используется полная сериализация/десериализация плана выполнения запросов. Слабая сторона этого решения – проблемы с переносимостью и чувствительность к малейшим изменениям схемы. Мы ищем оптимальное решение, которое должно быть основано на независимой от платформы "логической" сериализации плана выполнения запросов и менее чувствительное к изменениям в схеме.