Вопрос проверяет знание встроенных инструментов PostgreSQL для анализа производительности запросов.
pg_stat_statements — это расширение PostgreSQL, которое собирает статистику по всем выполненным SQL-запросам. Оно показывает, какие запросы выполняются чаще всего и какие из них потребляют больше времени. С его помощью легко найти самые «дорогие» запросы. Это один из главных инструментов для оптимизации БД.
Когда БД начинает тормозить, важно понять не «в целом», а какие именно запросы создают нагрузку. Именно для этого и нужен pg_stat_statements.
pg_stat_statements — расширение PostgreSQL, собирающее агрегированную статистику выполнения SQL-запросов.
Для каждого запроса (в нормализованном виде):
количество выполнений;
общее и среднее время выполнения;
минимальное и максимальное время;
количество прочитанных строк.
Важно:
параметры запроса заменяются на плейсхолдеры;
это позволяет агрегировать одинаковые запросы.
Запрос к представлению:
SELECT query, calls, total_time, mean_time
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;
Так обычно находят:
самые «тяжёлые» запросы;
самые часто выполняемые запросы.
pg_stat_statements помогает:
определить приоритеты оптимизации;
найти N+1 запросы;
обнаружить неожиданно частые SELECT/UPDATE.
Важно помнить:
статистика агрегированная, без привязки к конкретному пользователю;
данные сбрасываются при рестарте или вручную;
это не замена EXPLAIN ANALYZE, а дополнение.
pg_stat_statements — основной инструмент для поиска самых дорогих и частых запросов в PostgreSQL. Его почти всегда включают в продакшене для анализа производительности.