Per tal de veure les sessions actives en una instància de PostgreSQL podem consultar la taula:
pg_stat_activity.
En aquesta taula podem trobar camps com el pid, la base de dades, usuari, aplicació client, data d’inici de la consulta, la consulta i l’estat de la consulta.
select datname , pid, usename, application_name, query_start, query, state
from pg_stat_activity;
![](https://www.eljordifabi.tech/wp-content/uploads/2023/03/imatge-1024x127.png)
Amb aquesta mateixa taula també podem crear una consulta per matar sessions actives a través de la funció pg_terminate_backend, que té com a paràmetre un pid.
Per exemple, la següent consulta mata totes les sessions d’una bbdd seleccionada (excepte la sessió actual).
SELECT
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
pid <> pg_backend_pid() -- no matar la sessió actual!
AND datname = '<bbdd>' -- filtre per matar totes les sessions d'una bbdd
;
Podeu trobar més informació a la pàgina oficial:
https://www.postgresql.org/docs/10/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW
https://www.postgresql.org/docs/current/functions-admin.html