Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: pg_stat_statements

Что такое pg_stat_statements и для чего он используется

Вопрос проверяет знание встроенных инструментов PostgreSQL для анализа производительности запросов.

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

pg_stat_statements — это расширение PostgreSQL, которое собирает статистику по всем выполненным SQL-запросам. Оно показывает, какие запросы выполняются чаще всего и какие из них потребляют больше времени. С его помощью легко найти самые «дорогие» запросы. Это один из главных инструментов для оптимизации БД.

Длинный ответ

Когда БД начинает тормозить, важно понять не «в целом», а какие именно запросы создают нагрузку. Именно для этого и нужен pg_stat_statements.

Определение

pg_stat_statements — расширение PostgreSQL, собирающее агрегированную статистику выполнения SQL-запросов.

1) Что именно собирается

Для каждого запроса (в нормализованном виде):

  • количество выполнений;

  • общее и среднее время выполнения;

  • минимальное и максимальное время;

  • количество прочитанных строк.

Важно:

  • параметры запроса заменяются на плейсхолдеры;

  • это позволяет агрегировать одинаковые запросы.

2) Пример использования

Запрос к представлению:

SELECT query, calls, total_time, mean_time
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;

Так обычно находят:

  • самые «тяжёлые» запросы;

  • самые часто выполняемые запросы.

3) Зачем это нужно на практике

pg_stat_statements помогает:

  • определить приоритеты оптимизации;

  • найти N+1 запросы;

  • обнаружить неожиданно частые SELECT/UPDATE.

4) Ограничения

Важно помнить:

  • статистика агрегированная, без привязки к конкретному пользователю;

  • данные сбрасываются при рестарте или вручную;

  • это не замена EXPLAIN ANALYZE, а дополнение.

Вывод

pg_stat_statements — основной инструмент для поиска самых дорогих и частых запросов в PostgreSQL. Его почти всегда включают в продакшене для анализа производительности.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#pg_stat_statements

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.