pg_stat_activity

В представлении pg_stat_activity для каждого серверного процесса будет присутствовать по одной строке с информацией, относящейся к текущей деятельности этого процесса.

СтолбецТипОписание
datidoidOID базы данных, к которой подключён этот серверный процесс
datnamenameИмя базы данных, к которой подключён этот серверный процесс
pidintegerИдентификатор процесса этого серверного процесса
usesysidoidOID пользователя, подключённого к этому серверному процессу
usenamenameИмя пользователя, подключённого к этому серверному процессу
application_nametextНазвание приложения, подключённого к этому серверному процессу
client_addrinetIP-адрес клиента, подключённого к этому серверному процессу. Значение null в этом поле означает, что клиент подключён через сокет Unix на стороне сервера или что это внутренний процесс, например, автоочистка.
client_hostnametextИмя компьютера для подключённого клиента, получаемое в результате обратного поиска в DNS по client_addr. Это поле будет отлично от null только в случае соединений по IP и только при включённом режиме log_hostname.
client_portintegerНомер TCP-порта, который используется клиентом для соединения с этим серверным процессом, или -1, если используется сокет Unix
backend_starttimestamp with time zoneВремя запуска процесса, т. е. время, когда клиент подсоединился к серверу
xact_starttimestamp with time zoneВремя начала текущей транзакции в этом процессе или null при отсутствии активной транзакции. Если текущий запрос был первым в своей транзакции, то значение в этом столбце совпадает со значением столбца query_start.
query_starttimestamp with time zoneВремя начала выполнения активного в данный момент запроса, или, если state не active, то время начала выполнения последнего запроса
state_changetimestamp with time zoneВремя последнего изменения состояния (поля state)
waitingbooleanTrue, если этот серверный процесс ожидает освобождения блокировки
statetextОбщее текущее состояние этого серверного процесса. Возможные значения: active: серверный процесс выполняет запрос. idle: серверный процесс ожидает новой команды от клиента. idle in transaction: серверный процесс находится внутри транзакции, но в настоящее время не выполняет никакой запрос. idle in transaction (aborted): Это состояние подобно idle in transaction, за исключением того, что один из операторов в транзакции вызывал ошибку. fastpath function call: серверный процесс выполняет fast-path функцию. disabled: Это состояние отображается для серверных процессов, у которых параметр track_activities отключён.
backend_xidxidИдентификатор верхнего уровня транзакции этого серверного процесса или любой другой.
backend_xminxidтекущая граница xmin для серверного процесса.
querytextТекст последнего запроса этого серверного процесса. Если state имеет значение active, то в этом поле отображается запрос, который выполняется в настоящий момент. Если процесс находится в любом другом состоянии, то в этом поле отображается последний выполненный запрос.
SELECT "pid", "usename", "client_addr", "datname", application_name , EXTRACT(EPOCH FROM CURRENT_TIMESTAMP - "query_start")::INTEGER, "state", "query" FROM "pg_stat_activity";
Значения в столбцах waiting и state не зависят друг от друга. Серверный процесс, находящийся в состоянии active может быть waiting, а может и не быть. Если статусы процессов имеют значение true в active, и waiting, то это означает, что запрос выполняется, но его работе препятствует какая-то блокировка в системе.