2011-12-21 34 views
19

Me gustaría controlar las consultas enviadas a mi base de datos desde una aplicación. Con ese fin, he encontrado pg_stat_activity, pero más a menudo que no, las filas que se devuelven leen "en transacción". Estoy haciendo algo mal, no soy lo suficientemente rápido para ver las consultas, estoy confundido o todo lo anterior.¿Aplicación para monitorear las consultas de PostgreSQL en tiempo real?

¿Alguien puede recomendar la manera más a prueba de idiotas de controlar las consultas que se ejecutan en PostgreSQL? Preferiría algún tipo de solución basada en UI fácil de usar (por ejemplo: "Profiler" de SQL Server), pero no soy demasiado quisquilloso.

Respuesta

15

con PostgreSQL 8.4 o superior se puede utilizar el módulo contrib para recopilar estadísticas de ejecución de consultas del servidor de base de datos.

ejecutar 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 agregar esta configuración de ejemplo a su postgresql.conf (requiere reinicio):

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 desee configurar el registro del servidor para mostrar todas las consultas o consultas con un tiempo de ejecución mínimo. Para hacerlo, establezca el logging configuration parameterslog_statement y log_min_duration_statement en su postgresql.conf según corresponda.

+0

Si bien es una buena respuesta, que no cubre cómo se podría recoger datos de pg_stat_statements, porque siempre está cambiando y solo tiene estadísticas acumulativas sobre las ejecuciones de consultas. Para eso, puede usar algunas de las herramientas como https://pganalyze.com/ o https://okmeter.io que le mostrarán gráficos e información detallada sobre la ejecución y el rendimiento de las consultas. Descargo de responsabilidad - Yo trabajo para okmeter. –

0

Desafortunadamente no lo he probado, pero creo que pgFouine puede mostrarle algunas estadísticas.

Aunque, parece que no muestra consultas en tiempo real, sino que genera un informe de consultas posteriores, ¿tal vez todavía satisface su demanda?

Usted puede echar un vistazo a http://pgfouine.projects.postgresql.org/

22

PgAdmin ofrece un monitor de servidor herramienta llamada bastante fácil de usar

(Herramientas -> serverStatus)

+4

Esta herramienta parece haber desaparecido en PgAdmin 4. – Lasf

+0

@Lasf - De acuerdo ... ¿Alguna idea de por qué esto se fue? –

Cuestiones relacionadas