title

text

Иван Панченко
Иван Панченко Postgres Professional рзаместитель генерального директора
22 мин

Как Common Table Expressions превращает язык SQL в настоящий язык программирования

Common Table Expressions (CTE) - это элемент стандарта SQL, который реализован в СУБД PostgreSQL с некоторыми дополнениями.

Во-первых, рекурсивные CTE делают язык SQL Тьюринг-полным.

Во-вторых, CTE теоретически позволяют решать на этом языке любые программистские задачи.

Как с этим обстоят дела на практике и какую пользу прикладной программист может извлечь из CTE, будет рассказано в этом докладе.

Слайды

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

  • Михаил Жилин
    Михаил Жилин Postgres Professional Инженер
    22 мин

    Способы сжатия данных в PostgreSQL

    В связи с очевидной необходимостью рационального использования как собственного «железа», так и облачных ресурсов, тема сжатия данных становится особенно актуальной. В рамках доклада Михаил предоставит краткий обзор различных механизмов сжатия данных, применяемых в PostgreSQL.

    Во-первых, мы поговорим о том, когда и почему сжатие данных в СУБД может быть полезно.

    Во-вторых, ознакомимся со встроенными механизмами сжатия данных в PostgreSQL.

    В-третьих, будут рассмотрены расширенные возможности сжатия данных для этой СУБД.

    В-четвёртых, сравним преимущества всех обсуждаемых вариантов сжатия данных и продемонстрируем несколько примеров их применения в реальной жизни.

  • Олег Бартунов
    Олег Бартунов Postgres Professional генеральный директор
    22 мин

    NEW TOAST in TOWN. ONE TOAST FITS ALL

    Исторически одной из проблем PostgreSQL является технология TOAST (The Oversized-Attribute Storage Technique, или методика хранения сверхбольших атрибутов), которая была разработана задолго до появления современных типов данных. У вновь добавленных типов, к которым относится и JSONB, есть внутренняя структура. TOAST не учитывает её и работает с JSONB как с «чёрным ящиком», что крайне неэффективно. Как при простом доступе по ключу, так и при обновлении JSONB возникают большие накладные расходы.

    В этом докладе мы расскажем про нашу работу по улучшению функционирования TOAST. Благодаря нашим патчам, TOAST сможет определять тип данных и работать с ним наиболее оптимально в зависимости от его особенностей. Большие колонки будут «нарезаться» и сжиматься так, чтобы объём хранимых данных был меньше, а скорость работы с ними - выше. В случае с JSONB мы получили серьёзный выигрыш по производительности, о котором рассказали на ряде конференций в прошлом году.

    Pluggable TOAST позволит реализовать все наши улучшения в виде расширений. Мы приведём несколько несколько примеров его использования — стрим bytea в PostgreSQL со скоростью диска и JSONB. Мы планируем, что Pluggable TOAST будет принят в ядро PostgreSQL 16, и наши примеры с некоторыми доработками станут доступны всему сообществу в качестве расширений.

    Также Олег расскажет, почему изменилась тема выступления с первоначальной SQL/JSON, и вручит приз тому, кто догадается, какая песня вдохновила его придумать название для текущего доклада.