Динамическая компиляция SQL-запросов в PostgreSQL с использованием LLVM JIT
В данный момент в PostgreSQL для исполнения SQL-запросов применяется интерпретатор, реализующий модель итераторов (Volcano-модель). В то же время можно добиться существенного ускорения, выполняя динамическую компиляцию запроса «на лету». В этом случае можно генерировать код, специализированный для конкретного SQL-запроса, а также применять компиляторные оптимизации, учитывая, что во время выполнения уже известна структура используемых таблиц и типы данных. Такой подход особенно актуален для сложных запросов, скорость выполнения которых ограничена производительностью процессора.
Слайды
Другие доклады
-
Дмитрий Юхтимовский Gilev.ru технический лидер
Поиск проблемного кода 1С на СУБД PostgreSQL
- Особенности взаимодействия 1С:Предприятие 8 и PostgreSQL 9 1.1 Изменения в редакциях платформы 1С 1.2 Схемы v81c_data и v81c_index 1.3 Трансляция запросов 1С в SQL 1.4 События технологического журнала 1С для диагностики PostgreSQL
- Анализ запросов, вызывающих проблемы производительности в PostgreSQL 2.1 Бесплатный инструмент для автоматизации разбора логов 2.2 Правило Парето на практике 2.3 Установка и настройка инструмента 2.4 Практический пример оптимизации запроса 2.4.1 Проблема в запросе PostgreSQL 2.4.2 Выяснение нерациональных операций в запросе 2.4.3 Способы устранения неоптимальностей
- Статистка PostgreSQL для диагностики производительности 3.1 Сравнение с возможностями MS SQL Server, различия 3.2 Диагностика блокировок 3.3 Диагностика рабочей нагрузки 4 Примеры из практики команды gilev.ru
-
Дмитрий Иванов Postgres Professional DeveloperИльдар Мусин Postgres Professional Разработчик
Секционирование с pg_pathman
Секционирование в PostgreSQL - давно ожидаемый функционал. И хотя в Postgres возможно реализовать секционирование через наследование, такой подход имеет ряд недостатков, таких как необходимость вручную создавать секции и поддерживать триггеры, значительные накладные расходы на планирование и отсутствие оптимизаций времени выполнения. В докладе мы расскажем про расширение pg_pathman, над которым мы работаем. pg_pathman поддерживает HASH и RANGE секционирование и выполняет оптимизации на этапах планирования и исполнения, поддерживает быструю вставку за счет отказа от триггеров в пользу Custom Node, содержит функции для управления секциями (add, split, merge и др.), поддерживает FDW, неблокирующую миграцию данных и другие возможности. Мы также расскажем об интеграции pg_pathman в PostgresPro Enterprise Edition и поддержку Oracle-подобного синтаксиса для секционирования. В завершение мы расскажем о новых возможностях секционирования в PostgreSQL 10, что реализовано и пути дальнейшего развития.
ВИДЕО
-
Егор Рогов Postgres Professional эксперт
ProBackup: быстро, надежно, инкрементально
Современное состояние средств резервного копирования для PostgreSQL определенно оставляет простор для улучшений. Штатные средства дают исключительно базовую функциональность, сторонние инструменты решают некоторые, но не все, проблемы. Для того, чтобы резервная копия была надежной, могла выполняться быстро и инкрементально на уровне страниц, нужна в том числе и поддержка со стороны базы данных. На мастер-классе мы расскажем про новый инструмент резервного копирования и восстановления ProBackup, который мы разрабатываем в нашей компании, и покажем его в действии.
Скрипт демонстрации:
ФОТО:
-
Олег Бартунов Postgres Professional генеральный директор
JSON в PostgreSQL: дорожная карта
В прошлом году был принят стандарт ISO/IEC 9075-2:2016, в котором наконец-то был стандартизирован синтаксис и семантика JSON и операций над ним в языке SQL. В докладе будет рассказано о требованиях этого стандарта и чем они отличаются от реализации JSON/JSONB в PostgreSQL, в частности, о JSON Path (аналог XPath для XML), о SQL/JSON функциях и о том, что мы планируем сделать в PostgreSQL для соответствия стандарту.
ВИДЕО