Banco de dadosDestaque PrincipalDestaque SecundárioProgramação

Analisando e consultando processos no PostgreSQL

No post de hoje vamos mostrar como analisar e consultar processos no PostgreSQL.

O PostgreSQL é um sistema de gerenciamento de banco de dados relacional do tipo cliente/servidor com arquitetura multiprocesso e executado em um único host.

Precisando melhorar seu servidor de banco de dados PostgreSQL? Ou precisa de uma melhor administração do seu banco de dados? Temos o prazer em ajudar, faça uma cotação agora mesmo soloweb.com.br

Uma coleção de vários processos que gerenciam cooperativamente um cluster de banco de dados é geralmente chamada de ‘servidor PostgreSQL’ e contém os seguintes tipos de processos:

Precisando de uma hospedagem de site ou de um servidor dedicado personalizado, seja para ambiente de teste, desenvolvimento ou de produção? E com um suporte de especialistas, que ti, ajudam a resolver os problemas o mais rápido possível? A SoloWeb tem o prazer em ti, ajudar com isso. Entre em contato conosco e faça uma cotação agora mesmo, acesse: www.soloweb.com.br.
  • Um processo do servidor postgres é um pai de todos os processos relacionados a um gerenciamento de cluster de banco de dados.
  • Cada processo de back-end lida com todas as consultas e declarações emitidas por um cliente conectado.
  • Vários processos em segundo plano executam processos de cada recurso (por exemplo, processos VACUUM e CHECKPOINT) para gerenciamento de banco de dados.
  • Nos processos associados à replicação , eles executam a replicação de streaming.
  • No processo de trabalho em segundo plano compatível com a versão 9.3, ele pode executar qualquer processamento implementado pelos usuários. Para não entrar em detalhes aqui, consulte o documento oficial

Um exemplo da arquitetura do processo no PostgreSQL.

Vamos agora a algunss comandos uteis no seu banco de dados.

1. Listar o número de conexões ativas no PostgreSQL utilize o comando

select * from pg_stat_activity;

2. Você pode utilizar o comando count() para contar as conexões.

select count(*) from pg_stat_activity;

3. Outra opção de consulta processos

SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != '<IDLE>'
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;

4. Terceira Opção

SELECT pid, age(clock_timestamp(), query_start), usename, query 
FROM pg_stat_activity 
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' 
ORDER BY query_start desc;

5. Encontrar tempo de processamento de querys longas

SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';

6. Cancelamento de querys de execução longa

SELECT pg_cancel_backend(pid);

7. Eliminar o ID do processo / Encerrar consultas travadas

SELECT pg_terminate_backend(pid);
Esperamos ter ajudado com mais esta dica, e siga nos, nas redes sociais para mais tutoriais, e se precisar de nossa ajuda estamos a disposição: www.soloweb.com.br.

E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br