системное представление в PostgreSQL, отображающее текущий снимок состояния подключений и выполняемых запросов

pg_stat_activity можно использовать для выявления долгих запросов, анализа ожиданий и диагностики блокировок (особенно полезно с pg_locks), а также для анализа нагрузки и диагностики проблем производительности.

Колонки:

  • datid — идентификатор базы данных
  • datname — имя текущей базы данных
  • leader_pid — идентификатор ведущего процесса для параллельного запроса (для обычных сессий — null)
  • pid — идентификатор backend-процесса, обслуживающего подключение. Если его знать можно, например, принудительно завершить сессию через pg_terminate_backend()
  • usesysid — системный идентификатор пользователя, от имени которого выполнено подключение.
  • usename — имя пользователя PostgreSQL, выполнившего подключение
  • application_name — название приложения, инициировавшего подключение (если оно было указано в строке подключения)
  • client_addr — IP‑адрес клиента (для локальных подключений и background workers может быть null)
  • client_hostname — имя хоста клиента (будет null если в конфиге не указано log_hostname = on)
  • client_port — номер TCP‑порта клиента (-1 означает Unix‑сокет)
  • backend_start — время установления подключения к серверу
  • xact_start — время начала текущей транзакции
  • query_start — время начала выполнения текущего запроса
  • state_change — время последнего изменения состояния сессии
  • wait_event_type — тип события, на котором ждёт процесс (Lock, IO, Timeout и т.д.)
  • wait_event — конкретное событие ожидания (тип блокировки, операция ввода-вывода и т.п.)
  • state — текущее состояние сессии. Значения: active (сессия выполняет запрос), idle (ожидание нового запроса), idle in transaction (транзакция начата, но запрос не выполняется), idle in transaction (aborted) (в транзакции произошла ошибка), disabled (в конфиге указано track_activities = off), fastpath function call (вызов функции через fast-path)
  • backend_xid — текущий идентификатор транзакции (может быть null, например, до первого изменения данных)
  • backend_xmin — минимальный XID, который backend всё ещё может видеть. Используется VACUUM для определения, какие версии строк нельзя удалять
  • query_id — уникальный идентификатор запроса (если включён сбор идентификаторов запросов)
  • query — текст выполняемого запроса (если состояние idle, то последний выполненный, может быть обрезан если длина превышает track_activity_query_size)
  • backend_type — тип бэкенда (client backend, autovacuum worker, logical replication worker, checkpointer, и т.д.)