Настройка автопланировщика с использованием цикла обратной связи
При OLAP и пакетной обрабокте данных часто наблюдается ситуация, что чем сложее запрос (содержит много джойнов, фильтров и аггрегативных функций), тем выше вероятность ошибок в оценке количества строк, в результате чего планировщик выбирает неэффективный план исполнения запроса.
Для того, чтобы решить эту проблему, я разработал инструмент под названием pg_plan_advsr - это расширение для PostgreSQL, которое исправляет ошибки оценки путем неоднократного возвращения в планировщик информации, собранной в ходе исполнения запроса.
Расширение содержит три фичи:
- Автоматическая оптимизация плана запроса за счет неоднократного возвращения информации о ходе выполнения запроса в планировщик.
- Сохранение всех выработанных при оптимизации планов запросов в таблицу истории.
- Создание и сохранение хинтов оптимизатора с тем, чтобы иметь возможность воспроизвести выработанные планы исполнения запросов в процессе настройки.
Я верифицировал эффективность pg_plan_advsr путем запуска join order benchmark (JOB) на PG 10.4, в ходе чего наблюдалось сокращение времени исполнения запроса до 50% от первоначального. Таким образом, расширение будет полезно пользователям, который хотят настроить планировщик для OLAP и пакетной обработки данных.
В ходе презентации я расскажу о следующие моментах:
- Принципы построения и архитектура pg_plan_advsr.
- Подробная информация о результатах тестирования JOB.
- Направления улучшений в будущем.
- Совместное использование расширений aqo и pg_plan_advsr together (экспериментальное).
Слайды
Видео
Другие доклады
-
Павел Труханов okmeter.io CEO
Мониторинг Postgres по USE и RED
Есть две методологии перформанс мониторинга: USE (Utilization, Saturation, Errors) Брендана Грегга и RED (Requests, Errors, Durations) от Тома Уилки. В докладе я хочу рассказать о том, как мы на них ориентировались и продолжаем ориентироваться, когда реализуем мониторинг Postgres в okmeter.io.
-
Джигнеш Шах Amazon Web Services Manager, RDS PostgreSQL
Глубокое погружение во вселенную RDS PostgreSQL
В ходе доклада мы с головой окунемся в пространство восхитительных возможностей службы Amazon RDS для PostgreSQL, включая новые версии релизов PostgreSQL, новые расширения, более крупные таблицы. Мы посмотрим на бенчмарки новых типов сущностей RDS и их ценность, на то, как работают высокая доступность и масштабируемость по чтению. Разберем уроки, которые мы вынесли из опыта управления большим парком сущностей с помощью PostgreSQL, включая важные настройки и возможные подводные камни, связанные с pg_upgrade.
-
Александр Федоров dbeaver.com Директор по развитиюАндрей Хитрин RedSys Системный архитектор
Самый важный инструмент: Xobot IDE
В мире программирования особняком стоит создание исходного кода для "процедурных расширений" баз данных. Большинство СУБД предлагает процедурные языки и "хранимые процедуры" для создания процедурных расширений. В Postgres количество поддерживаемых официально и не очень процедурных языков уже перевалило за десяток.
Традиционно на хранимые процедуры возлагают множество задач: трудно устоять перед соблазном исполнить операцию над данными непосредственно в хранилище, особенно в Enterprise разработке. Такой подход довольно быстро приводит к размазыванию бизнес-логики по телу хранимых процедур и резко повышает стоимость поддержки и развития системы в целом.
Особенности жизненного цикла хранимых процедур затрудняют применение стандартных инструментов и практик по контролю изменений. Необходимо адаптировать работу с хранимыми процедурами к стандартам Change Management, оставаясь в рамках привычных для разработчика действий.
Мы рассмотрим проблемы разработки процедурных расширений и обсудим решения, которые мы реализуем в IDE XOBOT.
-
Ирина Фаст Сберобразование DBA
Администрирование PostgreSQL глазами Oracle DBA
Имея опыт администрирования Oracle, я обнаружила некоторые отличительные особенности в администрировании PostgreSQL, которыми я хотела бы поделиться с вами. Мы рассмотрим набор необходимых инструментов для администраторов баз данных, их возможности и полезность по сравнению с аналогами Oracle. Также я собираюсь обобщить основные различия между Oracle DB и PostgreSQL с точки зрения администрирования.