Вакуумотерапия: лечим хронические заболевания БД
После импортозамещения и перехода с СУБД Oracle на PostgreSQL мы столкнулись как с "детскими" болезнями нашего приложения на новой СУБД, которые успешно вылечили, так и с "хроническими заболеваниями", с которыми пришлось разбираться существенно дольше. Одной из наиболее запомнившихся проблем стала проблема деградации производительности, которая, как выяснилось, была вызвана недостаточным вакуумированием нашей БД. Опыт осознания и решения этой проблемы предлагается вашему вниманию в виде практических рекомендаций по борьбе с эффектом bloat для таблиц и индексов БД, а также настройке VACUUM/autovacuum PostgreSQL.
Слайды
Видео
Видео доступно участникам мероприятия, выполнившим вход в личный кабинет
Другие доклады
-
Евгений Бредня Postgres Professional Руководитель техподдержки
-
Christopher Travers Independent Community Member Principal Engineer
Crazy things you can do with PostgreSQL Indexes
Of the relational databases, PostgreSQL is fairly unique in the indexing capabilities it offers. While most of us are familiar with the use of indexes to speed performance when filtering on columns, PostgreSQL indexes can do far more than this.
This talk will focus on cases where difficult problems were solved through the creative use of indexes. Each of these cases is from an episode in my career.
In this presentation, you will learn:
- The general index access methods PostgreSQL supports out of the box
- How the planner uses indexes (only on a high level)
- Functional indexes
- Creative use of Index Only scans.
This is a talk for all audiences. The talk is primarily for beginner to intermediate users, but should have enough information for more advanced users to get some insight or inspiration from the talk as well.
-
Василий Тимощенко ПКТБ-ЦЦТ ОАО Начальник сектора
Опыт миграции высоконагруженной системы с DB2 for z/OS на PostgresPro в конфигурации multimaster
В докладе разработчик делится опытом миграции высоконагруженной системы в сфере железнодорожного транспорта с IBM DB2 for z/OS на PostgresPro в конфигурации multimaster. Основной акцент сделан на особенностях работы с кластером, функционирующим в режиме multimaster, с каким проблемами пришлось столкнуться и как их решать.
-
Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
ORM LinqToDb: используем возможности Postgres по максимуму
ORM-библиотеки широко используются при разработке бэкенда – примем это как данность. ORM-библиотеки совершенствуются, разработчики учатся на своих и чужих ошибках, и многие научились писать код для ORM, генерирующий вполне оптимальные запросы для типовых операций. Но есть ещё одна проблема ORM – ограниченность инструментов. Особенно это актуально для Postgres, имеющего массу операторов и конструкций (как в ядре, так и в расширениях), выходящих за рамки стандарта SQL.
ORM-библиотека LinqToDb имеет важную особенность: она позволяет очень просто (буквально в одну строку) писать расширения, реализующие любой SQL-оператор или конструкцию. Полнотекстовый поиск, KNN, CTE (в том числе рекурсивные), работа с массивами и jsonb, array_agg и jsonb_object_agg, табличные функции и LATERAL JOIN – всё это без труда можно использовать в ORM, что я и продемонстрирую в данном докладе!