De acordo com um comentário sobre essa pergunta, perguntei sobre conexões inativas no PostgreSQL 9.2 , algumas transações não confirmadas (possivelmente relacionadas a algumas dessas conexões inativas) podem causar alguns problemas de desempenho.
Qual é uma boa maneira de determinar se há transações não confirmadas (pontos de bônus se houver uma maneira de saber se a conexão em que estão conectados está ociosa ou não)?
Muito obrigado!
postgresql
database-design
performance
Juan Carlos Coto
fonte
fonte
pgtop
. Você também pode procurar por linhas mostrando "inativo na transação" na saída deps aux
.pgtop
parece interessante; existe um equivalente para o Windows?Respostas:
Se você quiser ver quantas conexões inativas você possui e que possui uma transação aberta, você pode usar:
Isso fornecerá uma lista de conexões abertas que estão no estado ocioso, que também possuem uma transação aberta.
Dito isto, não posso recriar uma conexão aberta no estado ocioso que possui uma transação aberta. Talvez alguém possa fornecer detalhes sobre como fazer isso.
fonte
state
coluna está presente apenas no 9.2. E para mim, parece que o estado adequado é "inativo na transação".state = 'idle'
que não indicam uma transação aberta.I cannot recreate an open connection in the idle state that has an open transaction.
Abra duas conexões com o banco de dados e digite "begin;" em um. Na outra, execute a consulta acima e você terá umidle in transaction
.