Qual dos dois seguintes é mais preciso?
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
sql
database
postgresql
dbconnection
Murali VP
fonte
fonte
Respostas:
Esses dois requisitos não são equivalentes. A versão equivalente do primeiro seria:
Nesse caso, eu esperaria que essa versão fosse um pouco mais rápida que a segunda, simplesmente porque tem menos linhas para contar. Mas você provavelmente não será capaz de medir a diferença.
Ambas as consultas são baseadas exatamente nos mesmos dados, para que sejam igualmente precisas.
fonte
A consulta a seguir é muito útil
fonte
Definitivamente, eles podem dar resultados diferentes. O melhor é
É porque inclui conexões com os processos de remetente do WAL que são tratados como conexões regulares e contam para isso
max_connections
.Veja max_wal_senders
fonte
Agregação de todas as sessões do postgres por status (quantas estão ociosas, quantas estão fazendo alguma coisa ...)
fonte
O número de conexões TCP o ajudará. Lembre-se de que não é para um banco de dados específico
fonte
Observando o código-fonte, parece que a consulta pg_stat_database fornece o número de conexões com o banco de dados atual para todos os usuários. Por outro lado, a consulta pg_stat_activity fornece o número de conexões com o banco de dados atual apenas para o usuário consultante.
fonte