select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
Quel est le meilleur chemin?
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
Quel est le meilleur chemin?
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.
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 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.