title

text

Олег Иванов
Олег Иванов Postgres Professional Разработчик
: декабря
45 мин

Адаптивная оптимизация запросов в PostgreSQL

Оптимизация запросов является важной задачей, решение которой существенно влияет на производительность СУБД, особенно при выполнении сложных запросов. В докладе будет рассмотрен оптимизатор запросов PostgreSQL, и, в частности, задача определения мощности вершины с зависимыми условиями, которая является одной из самых известных проблем стоимостных оптимизаторов. Предлагается решение этой проблемы, использующее методы машинного обучения и доступное в виде расширения с патчем для PostgreSQL 9.6. В докладе приводятся результаты экспериментального исследования предложенного решения, обсуждаются его плюсы и минусы, а также область применимости.

ВИДЕО

Слайды

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

  • Ильдар Мусин
    Ильдар Мусин Postgres Professional Разработчик
    Дмитрий Иванов
    Дмитрий Иванов Postgres Professional Developer
    45 мин

    Секционирование с pg_pathman

    Секционирование в PostgreSQL - давно ожидаемый функционал. И хотя в Postgres возможно реализовать секционирование через наследование, такой подход имеет ряд недостатков, таких как необходимость вручную создавать секции и поддерживать триггеры, значительные накладные расходы на планирование и отсутствие оптимизаций времени выполнения. В докладе мы расскажем про расширение pg_pathman, над которым мы работаем. pg_pathman поддерживает HASH и RANGE секционирование и выполняет оптимизации на этапах планирования и исполнения, поддерживает быструю вставку за счет отказа от триггеров в пользу Custom Node, содержит функции для управления секциями (add, split, merge и др.), поддерживает FDW, неблокирующую миграцию данных и другие возможности. Мы также расскажем об интеграции pg_pathman в PostgresPro Enterprise Edition и поддержку Oracle-подобного синтаксиса для секционирования. В завершение мы расскажем о новых возможностях секционирования в PostgreSQL 10, что реализовано и пути дальнейшего развития.

    ВИДЕО

  • Михаил Каган
    Михаил Каган Mellanox Technologies Технический Директор
    22 мин

    Построение высокопроизводительных горизонтально-масштабируемых СУБД

    Современным высокопроизводительным и горизонтально-масштабируемым СУБД в ходе своей работы требуется перемещать огромные объемы данных между компонентами системы. Справляться с этой задачей они должны быстро и без задержек для пользователей. Именно на высочайшей пропускной способности, ультранизких задержках, а также разгрузке CPU от сетевых задач фокусируется компания Mellanox при разработке своих технологий интерконнекта. В своем докладе Михаил расскажет какую роль быстрая сетевая инфраструктура играет в системах СУБД и Big Data, а также поделится опытом компании Mellanox по построению таких систем совместного с ведущими мировыми производителями.

    ВИДЕО

  • Павел Лузанов
    Павел Лузанов Postgres Professional Руководитель образовательных программ
    90 мин

    Обзор средств для отладки, профилирования и трассировки серверного кода

    Отладка, профилирование и трассировка выполняемых команд являются важной частью процесса разработки любых приложений. Это актуально и при разработке хранимых процедур в СУБД.

    PostgreSQL предлагает различные инструменты (как встроенные, так и сторонние) для решения этих задач.

    В докладе представлен обзор имеющихся средств, с описанием сильных и слабых сторон. А также подробная демонстрация примеров использования.

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

    Материалы к мастер-классу:

  • Михаил Тюрин
    Михаил Тюрин ИТ предприниматель предприниматель
    22 мин

    Лок, лок – дедлок!

    < Query failed: ERROR: deadlock detected
    < DETAIL: Process 17371 waits for ShareLock on transaction 102733872; blocked by process 10414.
    < Process 10414 waits for ShareLock on transaction 102733874; blocked by process 17371.
    

    Подобные "неприятные" сообщения от сервера могут серьезно озадачить разработчика. При работе с блокировками, в частности, и с транзакциями в целом, следует учитывать особенности реализации клиентских библиотек, которые могут вызывать описанное выше исключение.

    В кратком докладе-сообщении будет объяснена механика взаимодействия блокировок, приводящая к ситуации дедлока; приведены ссылки на документацию; разобрана техника "обхода" данной проблемы конкурентной работы с данными; показаны обобщенные приемы из практики.