Как в PostgreSQL диагностируете медленные запросы в production? Какие инструменты используете?

Начните с pg_stat_statements, журналов медленных запросов и pg_stat_activity. Затем различите дорогой план, ожидание блокировок, I/O и чрезмерную частоту вызовов.

Короткий ответ

Что ответить на собеседовании

Начните с pg_stat_statements, журналов медленных запросов и pg_stat_activity. Затем различите дорогой план, ожидание блокировок, I/O и чрезмерную частоту вызовов.

Подробный разбор

Ответ с пояснениями

Начните с pg_stat_statements, журналов медленных запросов и pg_stat_activity. Затем различите дорогой план, ожидание блокировок, I/O и чрезмерную частоту вызовов.

В pg_stat_statements смотрите calls, суммарное и среднее время, строки и буферные показатели. Среднее скрывает хвост задержек, поэтому сопоставляйте его с прикладными метриками.

План проверяйте на репрезентативных данных; EXPLAIN ANALYZE действительно выполняет запрос и может создать нагрузку или изменить данные. Для текущих зависаний полезны wait events и связи блокировок. Собирайте только необходимые диагностические сведения: параметры SQL могут содержать персональные данные и секреты. После оптимизации сравните результат при той же нагрузке.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее