Найти в Дзене
Оптимизация ресурсоёмких SQL-запросов

Оптимизация ресурсоёмких SQL-запросов

Сравнительный анализ результатов нагрузочного тестирования для вариантов оптимизации ресурсоёмкого запроса в условиях параллельной нагрузки
подборка · 13 материалов
2 недели назад
Оптимизация пагинации в PostgreSQL: Как настройка work_mem превратила ROW_NUMBER в лидера производительности
Память решает: как ROW_NUMBER обогнал Deferred Join Предисловие В мире высоконагруженных баз данных выбор метода пагинации может стать решающим фактором для производительности системы. Эксперимент, проведённый с двумя подходами — классическим ROW_NUMBER и отложенным соединением (Deferred Join) — показал, что даже архитектурно более совершенный метод не гарантирует победы без тонкой настройки СУБД. Исследование раскрывает, как правильная конфигурация памяти PostgreSQL перевесила преимущества Deferred Join и позволила ROW_NUMBER добиться превосходства на параллельной нагрузке до 22 сессий...
2 недели назад
Когда теория проигрывает практике: почему ROW_NUMBER() не стал королём пагинации PostgreSQL
Прогноз обещал скорость, но диски сказали "нет" Предисловие Исследование сравнило два метода пагинации — ROW_NUMBER() и Deferred Join — под нагрузкой до 22 параллельных сессий. Прогноз нейросети предсказывал преимущество ROW_NUMBER(), но реальные тесты показали обратное: Deferred Join оказался на 29,3% быстрее, создавал на 70% меньше ожиданий и лучше масштабировался. Этот кейс демонстрирует, как теоретические оптимизации могут не учитывать реальные ограничения СУБД: работу с памятью, параллелизм и стоимость операций ввода-вывода...
2 недели назад
Оптимизация пагинации в PostgreSQL: сравнительный анализ производительности методов выборки случайных данных
Deferred Join — 644% эффективности Предыдущая работа по теме пагинации PostgreSQL Предисловие Для высоконагруженных систем выбор оптимального метода пагинации становится критически важным для производительности приложений. Данное исследование представляет собой сравнительный анализ трех основных подходов к пагинации в PostgreSQL при работе с таблицей в 15+ миллионов записей. Результаты не просто демонстрируют количественные различия в скорости выполнения запросов, но и раскрывают фундаментальные...
2 недели назад
Пагинация в PostgreSQL: ROW_NUMBER убивает производительность.
ROW_NUMBER: там, где LIMIT летит — он ползёт Эффективная пагинация — не просто удобство, а необходимость. Это исследование раскрывает шокирующую разницу в производительности между популярными методами пагинации в PostgreSQL. Анализ нагрузочного тестирования, метрик системы и планов выполнения показывает, что выбор неправильного метода может замедлить приложение в 15 раз, создавая катастрофическую нагрузку на СУБД. Одни методы работают с молниеносной скоростью, а другие превращаются в «убийц производительности»...
2 недели назад
ИТОГ - Оптимизация SQL-запроса с использованием pg_expecto
Не верь на слово, проверь под давлением. Предисловие Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы? Бизнес задача Подготовить наиболее эффективный SQL-запрос, позволяющий получить информацию для анализа: Неполных бронирований Билетов без привязки к рейсам Рейсов без процедуры посадки Статистики по незавершённым операциям Методология исследования Тестовая среда и инструменты: СУБД: PostgreSQL 17 Инструмент нагрузочного тестирования: pg_expecto Тестовая база данных: "Демобаза 2...
2 недели назад
4️⃣Оптимизация SQL-запроса с использованием pg_expecto: Часть-4 "Временная таблица"
Не верь на слово, проверь под давлением. Методология исследования Тестовая среда и инструменты: СУБД: PostgreSQL 17 Инструмент нагрузочного тестирования: pg_expecto Тестовая база данных: "Демобаза 2.0" (большой размер, сложная схема) Условия тестирования: параллельная нагрузка, ресурсоемкий запрос Нагрузка на СУБД 1️⃣Эксперимент-1 : Оптимизация с использованием EXISTS 2️⃣Эксперимент-2 : Оптимизация структуры запроса 3️⃣Эксперимент-3 : Частичная агрегация 4️⃣Эксперимент-4 : Временная таблица...