Найти в Дзене
Postgres DBA

PG_HAZEL : Анализ инцидента производительности СУБД PostgreSQL , поиск и оптимизация проблемных SQL-запросов.

Проанализировать причины инцидента производительности СУБД . Выявить и оптимизировать SQL-запросы влияющие на снижение производительности СУБД. 80% событий ожиданий : 80% событий ожидания IPС по SQL-запросам: Наибольшее количество ожиданий IPC по запросу 6863414396188999698 Проблемные узлы плана выполнения: Создание индекса (частичного/составного) по столбцу "col3" для таблицы "table2". Применение комплекса PG_HAZEL "Орешник" позволило резко сократить время на анализ причин снижения производительности СУБД и быстро определить ключевые возможности для оптимизации проблемных SQL-запросов.
Оглавление
SQL-запросы пишут люди, а люди иногда ошибаются.
SQL-запросы пишут люди, а люди иногда ошибаются.

Аналогичная задача

Задача

Проанализировать причины инцидента производительности СУБД . Выявить и оптимизировать SQL-запросы влияющие на снижение производительности СУБД.

Инцидент производительности СУБД

Дашборд Zabbix
Дашборд Zabbix

Операционная скорость и ожидания СУБД

-3
-4

Корреляция типов ожиданий СУБД

-5
-6
-7

Диаграмма Парето по типу ожидания IPC

-8

80% событий ожиданий :

  • BgWorkerShutdown: Ожидание завершения фонового рабочего процесса.
  • ExecuteGather: Ожидание активности дочернего процесса при выполнении узла плана Gather.
  • ParallelFinish: Ожидание завершения вычислений параллельными рабочими процессами.

Диаграмма Парето SQL-запросов по типу ожидания IPC

-9

80% событий ожидания IPС по SQL-запросам:

  • 6863414396188999698
  • -4533756551948631336
  • 106835746851505948
  • -5395258115281111645
  • -4460774138492313959
  • -4665732847868082957
  • -7678244758353921905

Результат анализа ожиданий на уровне SQL-запросов:

Наибольшее количество ожиданий IPC по запросу 6863414396188999698

Текст запроса 6863414396188999698

-10

План выполнения запроса 6863414396188999698

-11

Проблемные узлы плана выполнения:

  • Sort
  • Gather
  • Workers Planned: 2
  • Parallel Seq Scan

Оптимизация SQL-запроса

Измененный текст запроса

-12

План выполнения измененного запроса

-13

Сравнение стоимости и времени выполнения оригинального и измененного запроса

Оригинальный SQL-запрос
Оригинальный SQL-запрос
Измененный SQL-запрос
Измененный SQL-запрос

ℹ️Дополнительная оптимизация

Создание индекса (частичного/составного) по столбцу "col3" для таблицы "table2".

Результат

Применение комплекса PG_HAZEL "Орешник" позволило резко сократить время на анализ причин снижения производительности СУБД и быстро определить ключевые возможности для оптимизации проблемных SQL-запросов.