pg_stat_activity
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, и т.д.)