Database

Monitoramento das conexões de banco do servidor

RT.DB.FAQ-14758
Para saber quem está usando cada conexão do banco de dados (PostgreSQL), usar o SQL abaixo:
select pid
, datname
, application_name
, backend_start
, state_change
, waiting
, state
, query
from  pg_stat_activity
order by datname, state_change desc;

Para um resumo das conexões por banco:
select datname,count(1)
from pg_stat_activity
group by datname
order by 2 desc;

Para derrubar uma conexão:
select pg_terminate_backend( "pid" );

Caso esteja ocorrendo conexões pendentes do tipo "Thread[localhost-startStop-...,main]", execute o comando abaixo
select pg_terminate_backend(pid)
from  pg_stat_activity
where application_name like 'Thread[localhost-startStop-%,main]';

Para liberar conexões que estão no banco mas não estão sendo ocupadas pelo spool:
select pg_terminate_backend(pid)
from  pg_stat_activity
where datname = 'nome-do-banco'
and state = 'idle';

Ver também: