Блог

Подборка статей и материалов от установки пакетов до настройки демонстрационных примеров трехзвенной клиент-серверной архитектуры. Кросс-компиляция приложений.

Фильтр по тегам

    Почему SELECT FOR UPDATE считается в PostgreSQL вредным

    Разбирая взаимоблокировки у клиента, я вспомнил, насколько опасным может быть использование SELECT FOR UPDATE при конкурентном доступе. В этом нет ничего нового, но я заметил, что многие не знают о режимах блокировки строк в PostgreSQL, и решил подробно описать, когда следует избегать SELECT FOR UPDATE.

    64-битный счётчик транзакций в PostgreSQL

    В статье описывается история создания патча, вводящего поддержку 64-битных номеров транзакций в PostgreSQL и почему он есть только в коммерческих форках. Статья особенно ценна тем, что под ней есть комментарий автора патча, Александра Короткова.

    Выбор индекса при соединении по нескольким столбцам

    Технически доклад довольно сложен, рассматривается в нём сразу несколько тем: алгоритм вычисления стоимости индексного доступа с точки зрения разработчика, проблема вычисления селективности при использовании предиката с несколькими условиями, проблема неиспользования расширенной статистики с параметризованным индексным доступом (parameterized scan), а также описывается патч, который позволяет её использовать. 

    Работа с временными таблицами в PostgreSQL

    В статье рассматриваются особенности работы с временными таблицами и описано решение проблемы раздувания таблиц системного каталога, реализованное в СУБД Tantor Postgres. Начиная с версии 17.5, при создании и удалении временных таблиц, а также при работе с временными объектами таблицы системного каталога не изменяются.

    pg_dphyp: учим PostgreSQL соединять таблицы по-другому

    Эта статья не о DPhyp как таковом, а о том, с чем мне пришлось столкнуться в процессе написания расширения pg_dphyp (репозиторий) для PostgreSQL, реализующего этот алгоритм. 

    Пример создания патча для PostgreSQL

    В статье рассмотрена техника создания патча на примере добавления нового колоночного атрибута в системный каталог, с возможностью установки значения через команду ALTER TABLE. Техника будет полезна тем, кто хочет лучше разобраться, как расширяется функционал PostgreSQL. 

    СУБД Tantor Postgres 17.5: обзор улучшений для 1С

    Сегодня мы проведем обзор изменений, касающихся работы с высоконагруженными системами 1С. Новый релиз предлагает не просто несколько точечных исправлений, а целый арсенал специализированных функций, призванных существенно ускорить выполнение типичных для 1С операций, снизить нагрузку на инфраструктуру и упростить администрирование.

    Избыточная статистика тормозит Postgres? Настраиваем сэмплирование в pg_stat_statements

    pg_stat_statements — стандартное расширение PostgreSQL для сбора статистики выполнения SQL-запросов: количество запусков, общее и среднее время выполнения запросов, число возвращённых строк и другие показатели. В этой статье мы разберем, в каких сценариях расширение становится источником проблем, как устроено сэмплирование и в каких случаях его применение позволяет снизить накладные расходы.

    Внутристраничная очистка в индексах PostgreSQL

    В статье рассматривается алгоритм работы аналогичной оптимизации для индексов. Если горизонт удерживается, то ни внутристраничная очистка, ни вакуум не могут освободить место, и тогда новая версия строки вставляется в другой блок. Увидим на примере стандартного теста pgbench, как сильно может снижаться производительность при удержании горизонта базы данных (в случае когда есть сессия с долгим запросом или транзакцией) и разберемся в причинах снижения производительности.