
Estoy en el proceso de revisar cada declaración SQL que realiza una aplicación en comparación con la base de datos, por razones de rendimiento. ¿Existe una manera sencilla de registrar todas las declaraciones ejecutadas por el servidor de base de datos PostgreSQL? Gracias.
Respuesta1
La opción de configuración que estás buscando es log_statement = "all"
(si solo quieres las declaraciones), o log_min_statement_duration = <some number>
si solo buscas consultas "lentas" (para algún valor de "lento"). Verhttp://www.postgresql.org/docs/current/static/runtime-config-logging.htmlpara obtener más detalles sobre la configuración de registro.
Respuesta2
El auto_explain
módulo es muy útil para esto. No solo registrará las declaraciones, sino que registrará sus planes de ejecución e incluso puede registrar declaraciones ejecutadas dentro de funciones PL/PgSQL. El impacto en el rendimiento es bastante bajo a menos que habilite el análisis, en cuyo caso incurre en una sobrecarga de tiempo considerable para todas las consultas.
Verauto_explain
en la documentación.
Respuesta3
Por supuesto, usted mismo puede detectar las consultas más lentas, pero le aconsejo que utilicepáginaFouine– un analizador de registros PostgreSQL. Es fácil de instalar y realmente útil.