Определение фактического профиля нагрузки в PostgreSQL и динамические состояния БД

Привет, ХАБР! Я Владимир Хаймин , эксперт по системам управления базами данных PostgreSQL в ВТБ. Когда вы знакомитесь с документацией по какой-то системе в части базы данных, то обычно характер нагрузки определяется исходно в архитектуре проекта. Но если система определена архитектором как OLTP, но в действительности может вести себя в некоторые периоды времени как OLAP. Нормально ли такое поведение, и каким образом мы можем определить, что она ведет себя как-то иначе? Как определить фактический профиль нагрузки OLAP или OLTP и выразить это через метрики, пригодные для событийного и графического мониторинга? Эта статья является скорее исследовательской в области Data Science в прикладном контексте PostgreSQL. Data Science – это не только задачи ИИ: (ML, LLM,..), но прежде всего математика. Мы используем регрессивные методы для получения некоторых нужных нам параметров исходя из табличных рекомендованных данных. Также мы делаем упор на исследование состояния БД на основе статистики динамики ожиданий. Задача, несмотря на ее простой смысл, в решении оказалась не такой простой, и мы в итоге работали над ней довольно долго, хоть и в фоновом режиме. Также обратились к студенческому сообществу и провели по этой теме Хакатон ВТБ х Башня , прошедший в МГТУ им. Баумана 27 ноября 2025 года. В нем приняли участие студенты и выпускники НИУ ВШЭ, СПбГУ, ВКА им. А.Ф. Можайского, РАНХИГС, Московского Политехнического университета, НИТУ МИСИС, а также уже действующие архитекторы и администраторы БД. У команд было всего три дня на решение задачи, и хотя полностью её не удалось выполнить никому, совокупный результат всех участников позволил сформировать корректное решение. Результат именно этих работ я и изложил в статье и обязательно буду упоминать команды и авторов интересных идей, о которых пойдет речь.

https://habr.com/ru/companies/vtb/articles/1011188/

#postgresql #postgresql_performance #olap #oltp #htap

Определение фактического профиля нагрузки в PostgreSQL и динамические состояния БД

Привет, ХАБР! Я Владимир Хаймин , эксперт по системам управления базами данных PostgreSQL в ВТБ. Когда вы знакомитесь с документацией по какой-то системе в части базы данных, то обычно характер...

Хабр

Ох уж эти join-ы: 4 способа ускорить ваши запросы в 10 раз

Все мы прекрасно знаем, join – одна из самых важных вещей в любой базе данных, но в то же время одна из самых ресурсозатратных операций. Да что уж там, в мире аналитики (OLAP) десятилетиями адепты различных подходов моделирования данных все спорят без остановки что лучше: нормализация (то есть много join) или денормализация (то есть мало join). Но все понимают, если можно без join, лучше без. Проблема в том, что они нужны практически всегда. В этой статье давайте посмотрим, можно ли реально обойдись без join и в каких ситуациях? А также 4 способа, которые кратно ускорят ваши запросы.

https://habr.com/ru/articles/1004888/

#sql #postgresql #postgresql_performance #ускорение_запросов #базы_данных #оптимизация_sql #покрывающие_индексы #redis #materialized_view #материализованные_представления

Ох уж эти join-ы: 4 способа ускорить ваши запросы в 10 раз

Все мы прекрасно знаем, join – одна из самых важных вещей в любой базе данных, но в то же время одна из самых ресурсозатратных операций. Да что уж там, в мире аналитики (OLAP) десятилетиями адепты...

Хабр

Отчет по анализу публикаций на Хабре о производительности СУБД PostgreSQL (июнь – декабрь 2025)

Статья, включая иллюстрацию, сгенерирована нейросетью DeepSeek. Авторский только промпт: Проанализируй публикации на Хабре по теме производительности СУБД PostgreSQL за последние полгода . Подготовь отчет о наиболее интересных публикациях и общем интересе читателей Хабра к теме производительности СУБД PostgreSQL. Если интересно, читайте.

https://habr.com/ru/articles/977540/

#postgresql #postgresql_performance #нейросеть #deepseek

Отчет по анализу публикаций на Хабре о производительности СУБД PostgreSQL (июнь – декабрь 2025)

Производительность PostgreSQL — это баланс мощности и тонкой настройки Промпт Проанализируй публикации на Хабре по теме производительности СУБД PostgreSQL за последние полгода . Подготовь отчет о...

Хабр

PG_EXPECTO: Анализ влияния размера shared_buffers на производительность СУБД PostgreSQL

Производительность СУБД — ключевой фактор , однако спонтанные проверки часто искажают реальную картину. PG_EXPECTO — это не просто набор скриптов, а чёткая методология, превращающая анализ PostgreSQL из хаотичного поиска проблем в структурированный , воспроизводимый эксперимент . Задача Используя классическую задачу о влиянии значения параметра shared_buffers на производительность СУБД, подготовить и протестировать общую методологию проведения экспериментов по анализу производительности СУБД PostgerSQL c использованием нейросети для анализа статистических данных, собранных комплексом pg_expecto в ходе нагрузочного тестирования.

https://habr.com/ru/articles/976344/

#postgresql #postgresql_performance #статистический_анализ #нагрузочное_тестирование #нейросеть #deepseek #vmstat #iostat #сезон_ии_в_разработке

PG_EXPECTO: Анализ влияния размера shared_buffers на производительность СУБД PostgreSQL

PG_EXPECTO: Эксперимент, а не догадки. Предисловие Производительность СУБД — ключевой фактор , однако спонтанные проверки часто искажают реальную картину. PG_EXPECTO — это не просто набор скриптов, а...

Хабр

Оптимизация пагинации в PostgreSQL: Как настройка work_mem превратила ROW_NUMBER в лидера производительности

В мире высоконагруженных баз данных выбор метода пагинации может стать решающим фактором для производительности системы. Эксперимент, проведённый с двумя подходами — классическим ROW_NUMBER и отложенным соединением ( Deferred Join ) — показал, что даже архитектурно более совершенный метод не гарантирует победы без тонкой настройки СУБД. Исследование раскрывает, как правильная конфигурация памяти PostgreSQL перевесила преимущества Deferred Join и позволила ROW_NUMBER добиться превосходства на параллельной нагрузке . Пример использования нейросети для анализа

https://habr.com/ru/articles/975556/

#postgresql #postgresql_performance #пагинация #нагрузочное_тестирование #статистический_анализ #нейросеть #сезон_ии_в_разработке

Оптимизация пагинации в PostgreSQL: Как настройка work_mem превратила ROW_NUMBER в лидера производительности

Память решает: как ROW_NUMBER обогнал Deferred Join Предисловие В мире высоконагруженных баз данных выбор метода пагинации может стать решающим фактором для производительности системы. Эксперимент,...

Хабр

Маленькие, но мощные оптимизации: как pgpro_planner спасает запросы из мира 1С

Что общего у запросов из 1С, конструкции IN (VALUES ...) и безобидного выражения x + 0? Все они способны превратить выполнение запроса из миллисекундного дела в многоминутное ожидание, потому что стандартный планировщик PostgreSQL на них «спотыкается». Разбираем, как расширение pgpro_planner переписывает неудобные куски дерева запросов в дружелюбный вид еще до того, как оптимизатор успеет выбрать неудачный план, и почему некоторые из этих решений уже попали в ванильный PostgreSQL 18.

https://habr.com/ru/companies/postgrespro/articles/974652/

#optimizer #Postgres #postgresql #postgresql_performance #postgres_pro #pg_planner #pgpro_planner

Маленькие, но мощные оптимизации: как pgpro_planner спасает запросы из мира 1С

Привет, Хабр! Меня зовут Алёна Рыбакина, уже четыре года я разработчик компании Postgres Professional и контрибьютор в ванильный PostgreSQL. В статье расскажу о расширении pgpro_planner, которое...

Хабр

Когда теория проигрывает практике: почему ROW_NUMBER() не стал королём пагинации PostgreSQL

Исследование сравнило два метода пагинации — ROW_NUMBER() и Deferred Join — под нагрузкой до 22 параллельных сессий. Прогноз нейросети предсказывал преимущество ROW_NUMBER() , но реальные тесты показали обратное: Deferred Join оказался на 29,3% быстрее, создавал на 70% меньше ожиданий и лучше масштабировался. Этот кейс демонстрирует, как теоретические оптимизации могут не учитывать реальные ограничения СУБД: работу с памятью, параллелизм и стоимость операций ввода-вывода.

https://habr.com/ru/articles/975266/

#сезон_ии_в_разработке #postgresql #postgresql_performance #пагинация #нагрузочное_тестирование #статистический_анализ

Когда теория проигрывает практике: почему ROW_NUMBER() не стал королём пагинации PostgreSQL

Прогноз обещал скорость, но диски сказали "нет" Предисловие Исследование сравнило два метода пагинации —  ROW_NUMBER()  и  Deferred Join  — под нагрузкой до 22 параллельных сессий....

Хабр

Оптимизация пагинации в PostgreSQL: сравнительный анализ производительности методов выборки случайных данных

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

https://habr.com/ru/articles/974852/

#postgresql #postgresql_performance #пагинация #нагрузочное_тестирование #статистический_анализ

Оптимизация пагинации в PostgreSQL: сравнительный анализ производительности методов выборки случайных данных

Deferred Join — 644% эффективности Предыдущая работа по теме пагинации PostgreSQL Пагинация в PostgreSQL: ROW_NUMBER убивает производительность / Хабр Предисловие Для высоконагруженных систем выбор...

Хабр

Пагинация в PostgreSQL: ROW_NUMBER убивает производительность

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

https://habr.com/ru/articles/974126/

#postgresql #postgresql_performance #пагинация #нагрузочное_тестирование #статистический_анализ

Пагинация в PostgreSQL: ROW_NUMBER убивает производительность

ROW_NUMBER: там, где другие летят — он ползёт Эффективная пагинация — не просто удобство, а необходимость. Анализ нагрузочного тестирования, метрик системы и планов выполнения показывает, что выбор...

Хабр

Итоги анализа вариантов оптимизации ресурсоёмкого SQL-запроса

Исследовать и определить наиболее эффективный SQL-запрос, позволяющий получить информацию для анализа: -Неполных бронирований -Билетов без привязки к рейсам -Рейсов без процедуры посадки -Статистики по незавершённым операциям

https://habr.com/ru/articles/973126/

#postgresql #postgresql_performance #нагрузочное_тестирование #vmstat #статистический_анализ

Итоги анализа вариантов оптимизации ресурсоёмкого SQL-запроса

Не верь на слово, проверь под давлением. Задача Исследовать и определить наиболее эффективный SQL-запрос, позволяющий получить информацию для анализа: Неполных бронирований Билетов без привязки к...

Хабр