2011-03-11 19 views

Respuesta

124

Esas dos necesidades no son equivalentes. La versión equivalente de la primera sería:

SELECT sum(numbackends) FROM pg_stat_database; 

En ese caso, sería de esperar que la versión a ser un poco más rápido que el segundo, simplemente porque tiene menos filas para contar. Pero es probable que no puedas medir la diferencia.

Ambas consultas se basan exactamente en los mismos datos, por lo que serán igualmente precisas.

-3

De mirar el código fuente, parece que la consulta pg_stat_database le da el número de conexiones a la base de datos actual para todos los usuarios. Por otro lado, la consulta pg_stat_activity proporciona el número de conexiones a la base de datos actual solo para el usuario que realiza la consulta.

+1

Eso es incorrecto. pg_stat_activity también proporciona todas las conexiones, independientemente del usuario. A continuación, le proporciona un campo que indica de qué usuario se trata, que puede filtrar si lo desea. No le dará el * texto de la consulta * si no es el mismo usuario o un superusuario, pero aún así mostrará la conexión. –

+3

Tienes razón. No miré lo suficiente la definición de la vista. La restricción en userid es solo para la unión contra pg_authid. Mi error. –

2

No hay conexiones de tcp que lo ayuden. Recuerde que no es para una base de datos en particular

netstat -a -n | find/c "127.0.0.1:13306"

Cuestiones relacionadas