domingo, 15 de maio de 2011

Número de conexões no banco de dados Postgre

No lugar onde trabalho não possuo acesso a estatísticas e recusos administrativos do servidor de banco de dados postgre. Talvez fruto de um ciúme doentio da equipe de banco de dados com seus preciosos servidores. De qualquer forma precisei ver como estava o número de conexões com o servidor, e felizmente o postgre permite que estes número sejam acessados através de simples comandos sql.

Lembre-se de que as configurações para coleta de estatísticas devem estar habilitadas. Estas opções adicionam alguma penalidade na execução de queries. Por padrão as opções que permitem usarmos o comando sql apresentado aqui ficam habilitadas. Caso este não seja seu caso dê uma olhada no arquivo postgresql.conf. Mais detalhes no manual.

Finalmente aqui vai o comando:
select datname, count(*) from pg_stat_activity group by datname;

Com este comando podemos ver o número de conexões ativas no momento de execução agrupando-as pelo nome do banco de dados.
A saída será semelhante a isso:

  datname  | count
-----------+-------
 testdb    |     5
 template1 |     1
(2 rows)

A tabela pg_stat_activity também tem outras colunas com outras informações interessantes:

datid - oid do banco de dados
datname - nome do banco de dados
procpid - id do processo
usesysid - OID do usuário
usename - nome do usuário
current_query - query sendo executada atualmente
waiting - status de espera da query
xact_start - horário em que a transação atual começou a executar
query_start - horário em que a query começou a executar
backend_start - horário em que o processo foi iniciado
client_addr - Endereço do cliente
client_port - Porta do cliente

As colunas que mostram informações sobre a query só podem ser vistas pelo super usuário ou se o usuário que estiver vendo as informações for o mesmo do processo que está sendo listado.
Está aí pessoal uma dica rápida, espero que seja útil à vocês.

Nenhum comentário:

Postar um comentário