rendimiento - pg_stat_activity postgresql
¿Aplicación para monitorear consultas de PostgreSQL en tiempo real? (3)
Me gustaría controlar las consultas que se envían a mi base de datos desde una aplicación. Para ello, he encontrado pg_stat_activity
, pero más a menudo que no, las filas que se devuelven leen "en la transacción". ¡O bien estoy haciendo algo mal, no soy lo suficientemente rápido como para ver cómo llegan las consultas, estoy confundido o todo lo anterior!
¿Alguien puede recomendar la forma más idónea de controlar las consultas que se ejecutan en PostgreSQL? Preferiría algún tipo de solución basada en la interfaz de usuario fácil de usar (por ejemplo: "Profiler" de SQL Server), pero no soy demasiado selectivo.
Con PostgreSQL 8.4 o superior, puede usar el módulo contrib pg_stat_statements para recopilar estadísticas de ejecución de consultas del servidor de base de datos.
Ejecute el script SQL de este módulo contrib pg_stat_statements.sql
(en ubuntu se puede encontrar en /usr/share/postgresql/<version>/contrib
) en su base de datos y agregue esta configuración de muestra a su postgresql.conf
(requiere reiniciar ):
custom_variable_classes = ''pg_stat_statements''
pg_stat_statements.max = 1000
pg_stat_statements.track = top # top,all,none
pg_stat_statements.save = off
Para ver qué consultas se ejecutan en tiempo real, es posible que solo desee configurar el registro del servidor para mostrar todas las consultas o consultas con un tiempo de ejecución mínimo. Para ello, establezca los parámetros de configuración de registro log_statement
y log_min_duration_statement
en su postgresql.conf en consecuencia.
Desafortunadamente, no lo he probado, pero creo que pgFouine puede mostrarle algunas estadísticas.
Aunque parece que no muestra las consultas en tiempo real, sino que genera un informe de consultas después, ¿quizás aún satisface su demanda?
Puede echar un vistazo a http://pgfouine.projects.postgresql.org/
PgAdmin ofrece una herramienta bastante fácil de usar llamada monitor de servidor
(Herramientas -> ServerStatus)