176 votes

Quelle est la requête correcte pour obtenir le nombre actuel de connexions dans une base de données PostgreSQL?

 select numbackends from pg_stat_database;


select count(*) from pg_stat_activity;
 

Quel est le meilleur chemin?

274voto

Magnus Hagander Points 8671

Ces deux exigences ne sont pas équivalentes. La version équivalente du premier serait:

 SELECT sum(numbackends) FROM pg_stat_database;
 

Dans ce cas, je m'attendrais à ce que cette version soit légèrement plus rapide que la seconde, simplement parce qu'elle compte moins de lignes à compter. Mais vous ne pourrez probablement pas mesurer une différence.

Les deux requêtes sont basées sur exactement les mêmes données, elles seront donc aussi précises.

-3voto

Brian L Points 6585

En regardant le code source, il semble que la requête pg_stat_database vous donne le nombre de connexions à la base de données actuelle pour tous les utilisateurs. D'autre part, la requête pg_stat_activity donne le nombre de connexions à la base de données actuelle pour l'utilisateur interrogé uniquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X