Как получить нагрузку в БД на пустом месте?
Мы - обычные разработчики, которые думали о том, как разработать систему, способную выдерживать неплохие нагрузки, и это даже получилось.
На уровне архитектуры всё было OK, но объём данных возрастал, и начали вылезать не самые приятные моменты, о которых ранее никто не думал и не понимал. Иногда это приводило нас к самым потрясающим запросам, которые мы не понимали, как можно было написать. Мой небольшой рассказ будет о том, как получить нагрузку в БД на пустом месте и как потом от неё избавиться.
Слайды
Видео
Другие доклады
-
TTatsuro Yamada NTT Comware Ведущий специалист по базам данных
Настройка автопланировщика с использованием цикла обратной связи
При 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 и как это побороть
Несколько реальных кейсов от тех кто остановил переход на PostgreSQL.
-
Лев Драгунов Juno GIS Research TeamLead
PostgreSQL и Docker
СУБД внутри контейнера - ночной кошмар для администратора баз данных. Я расскажу, как PostgreSQL в контейнерах используется в Juno, с какими сложностями мы столкнулись и как их преодолели.
-
Камиль Исламов Stickeroid Ai CTO
CTE запросы как основа бизнес-логики
Рассмотрены особенности разработки и некоторые варианты реализации бизнес-логики высоконагруженных web-приложений на базе хранимых процедур в парадигме широкого применения Common Table Expression запросов.