Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: PostgreSQL, pg_stat_activity, monitoring, sessions, queries

Что содержит pg_stat_activity?

Вопрос проверяет знание системного представления pg_stat_activity в PostgreSQL для мониторинга активных сессий и диагностики проблем.

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

pg_stat_activity — это системное представление в PostgreSQL, которое показывает информацию о всех активных сессиях базы данных. Оно содержит данные о текущем выполняемом запросе, состоянии сессии, пользователе, базе данных и времени начала запроса. Это ключевой инструмент для администраторов баз данных при поиске долгих запросов или заблокированных сессий.

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

Что такое pg_stat_activity?

pg_stat_activity — это системное представление (view) в PostgreSQL, которое предоставляет информацию о каждом активном процессе (сессии), подключенном к серверу базы данных. Оно является основным инструментом для мониторинга текущего состояния базы данных, диагностики проблем производительности и выявления блокировок.

Основные колонки

  • datid и datname — идентификатор и имя базы данных, к которой подключена сессия.
  • pid — идентификатор процесса (PID) на сервере.
  • usesysid и usename — идентификатор и имя пользователя.
  • application_name — имя приложения, установившего соединение.
  • client_addr и client_port — IP-адрес и порт клиента.
  • backend_start — время начала сессии.
  • query_start — время начала текущего запроса.
  • state — текущее состояние сессии (active, idle, idle in transaction, etc.).
  • query — текст текущего выполняемого запроса (или последнего запроса, если сессия неактивна).

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

Чтобы найти все активные запросы, которые выполняются дольше 5 минут, можно выполнить:

SELECT pid, usename, query, query_start
FROM pg_stat_activity
WHERE state = 'active'
  AND query_start < now() - interval '5 minutes';

Этот запрос помогает выявить долгие или зависшие запросы, которые могут замедлять работу базы данных.

Применение на практике

pg_stat_activity используется для:

  • Мониторинга текущей нагрузки на базу данных.
  • Поиска блокировок (например, сессий в состоянии 'idle in transaction').
  • Отладки приложений, которые оставляют открытые транзакции.
  • Принудительного завершения проблемных сессий с помощью pg_terminate_backend(pid).

Вывод: pg_stat_activity — незаменимый инструмент для администраторов PostgreSQL, позволяющий оперативно диагностировать и решать проблемы с производительностью и блокировками.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Postgres

    Postgres

  • SQL

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

#PostgreSQL

#pg_stat_activity

#monitoring

#sessions

#queries

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