title

text

T
Tatsuro Yamada NTT Comware Ведущий специалист по базам данных
16:00 06 февраля
22 мин

Настройка автопланировщика с использованием цикла обратной связи

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

Для того, чтобы решить эту проблему, я разработал инструмент под названием pg_plan_advsr - это расширение для PostgreSQL, которое исправляет ошибки оценки путем неоднократного возвращения в планировщик информации, собранной в ходе исполнения запроса.

Расширение содержит три фичи:

  1. Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
  2. Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
  3. Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.

Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.

В ходе презентации я расскажу о следующие моментах:

  • Принципы построения и архитектура pg_plan_advsr.
  • Подробная информация о результатах тестирования JOB.
  • Направления улучшений в будущем.
  • Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).

Слайды

Видео

Другие доклады

  • Артур Закиров
    Артур Закиров Postgres Professional Разработчик
    22 мин

    Использование pg_variables в качестве временных таблиц

    PostgreSQL предоставляет возможность создания временных таблиц. Хотя временная таблица доступна только для сессии, которая ее создала, и удаляется по окончании этой сессии, вся информация о ней хранится в системном каталоге PostgreSQL. С этим связаны несколько проблем, которые затрудняют или делают невозможным использование временных таблиц в некоторых случаях. Есть различные попытки решения этой особенности, в том числе в нашей компании. Но они пока не увенчались успехом, главным образом из-за движка PostgreSQL. В докладе я хочу рассказать о довольно простом и небольшом расширении pg_variables. Оно позволяет создавать табличные переменные наряду со скалярными. Я расскажу, в каких случаях оно может заменить временные таблицы, какие у него есть достоинства и недостатки.

  • Сергей Андреев
    Сергей Андреев ООО "Ортикон-Групп" Архитектор
    22 мин

    Что останавливает переход на PostgreSQL и как это побороть

    Несколько реальных кейсов от тех кто остановил переход на PostgreSQL.

  • Артем Иванов
    Артем Иванов Atos IT S&S Пресейл-инженер
    Алексей Игнатов
    Алексей Игнатов Postgres Professional DBA
    22 мин

    Миграция на СУБД PostgreSQL/Postgres Pro с многоядерными серверами Bull. Реальный опыт

    При миграции на СУБД PostgreSQL/Postgres Pro многоядерные серверы требуют к себе внимательного отношения и знания настроек для параллельной работы процессов. Как обеспечить корректную и быструю работу при многотерабайтных конфигурацях?

    В своем докладе Артем Иванов и Алексей Игнатов расскажут об опыте тестирования PostgreSQL и Postgres Pro на BullSequana S и Bullion S.

    • Особенности данной аппаратной платформы для высонагруженных конфигураций
    • Многопроцессорные Scale-up серверы и PostgreSQL/Postgres Pro
    • Результаты стрессового тестирования оборудования для СУБД PostgreSQL/Postgres Pro.

  • Алексей Лустин
    Алексей Лустин SilverBulleters, LLC CTO
    22 мин

    Анализ проблемных запросов как средство регулярного рефакторинга кода 1С

    1. Принципы поиска проблемных запросов в PostgreSQL
    2. Оценка гипотетических индексов и степени их влияния на планы запросов
    3. Наиболее часто встречающиеся ошибки у 1С-программистов
    4. Базовые методы рефакторинга кода с учетом особенностей PostgreSQL
    5. Хранение аналитической информации журнала работы PostgreSQL для оценки качества рефакторинга