Настройка автопланировщика с использованием цикла обратной связи
При 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 (экспериментальное).
Слайды
Видео
Другие доклады
-
Алексей Лесовский PostgreSQL Consulting LLC Администратор баз данных
Поиск и устранение проблем в Postgres с помощью pgCenter
Время от времени при эксплуатации Postgres'а возникают проблемы, и чем быстрее найдены и устранены источники проблемы, тем благодарнее пользователи. pgCenter это набор CLI утилит которые является мощным средством для выявления и устранения проблем в режиме "здесь и сейчас". В этом докладе я расскажу как эффективно использовать pgCenter для поиска и устранения проблем, в каких направлениях осуществлять поиск и как реагировать на те или иные проблемы, в частности, как:
- проверить, все ли в порядке с Postgres'ом;
- быстро найти плохих клиентов и устранить их;
- выявлять тяжелые запросы;
- и другие полезные приемы с pgCenter.
-
Петр Грибанов 1С Технологический евангелист
1С:Предприятие и PostgreSQL
- 1С:Предприятие -как среда кросс-платформенной разработки бизнес-приложений
- 1С и PostgreSQL - вместе с 2006 года
- Работа 1С с PostgreSQL в облачном сервисе 1cFresh
- Что улучшено в платформе 1С:Предприятие для работы с PostgreSQL - Общие рекомендации по работе 1С с PostgreSQL.
-
Мирослав Шедиви solute GmbH Senior Software Developer
Python и PostgreSQL с использованием psycopg2
Python, может быть, не самый быстрый язык программирования на CPU, но быстрая и простая разработка на нем экономит массу усилий того, кто находится между креслом и клавиатурой. В ходе мастер-класса мы разберем "psycopg2" - наиболее популярную библиотеку для доступа к серверу PostgreSQL, а также напишем небольшое приложение, используя некоторые его полезные свойства.
-
ААнна Акентьева Postgres Professional младший разработчик
Autovacuum: что можно узнать, если прочитать код, а не документацию
В докладе будут рассмотрены детали реализации автовакуума и практические выводы, следующие из них. Будет также дан краткий обзор патчей для автовакуума, которые рассматриваются сообществом разработчиков на данный момент и возможно будут включены в следующие версии PostgreSQL.