Видеозаписи выступлений

Отлаживаем планировщик Postgres

Разработчик «Тантор Лабс» Сергей Соловьев поделился лайфхаками по отладке планировщика Postgres.

Он рассказал о принципах его устройства и основных структурах данных. Так, в пайплайне обработки запроса выделяются четыре этапа: парсинг запроса, переписывание, планирование и его выполнение.

Планировщик используется на этапе планирования, который также состоит из четырех частей:
  • Preprocess (предобработка дерева запроса), общая оптимизация, например, вычисление константных выражений;
  • Optimize (оптимизация), обогащение и обработка информации о запросе, инициализация планировщика, выполнение более серьезной оптимизации;
  • Find Paths – поиск всех возможные путей выполнения запроса. «Например, нам всегда доступен путь последовательного сканирования, но если у нас есть индекс, то добавим путь, использующий и его», – пояснил Сергей.
  • Create Plan – создание плана выполнения запроса на основе самого дешевого найденного пути.
2024-09-18 10:00 Казань 2024