Estoy en el proceso de revisar cada declaración SQL que una aplicación hace contra la base de datos, por razones de rendimiento. ¿Hay una manera fácil de registrar todas las declaraciones ejecutadas por el servidor de base de datos PostgreSQL? Gracias.
database
sql
postgresql
Jin Kim
fuente
fuente
Respuestas:
La opción de configuración que está buscando es
log_statement = "all"
(si solo desea las declaraciones), olog_min_statement_duration = <some number>
si solo está buscando consultas "lentas" (para algún valor de "lento"). Consulte http://www.postgresql.org/docs/current/static/runtime-config-logging.html para obtener más detalles sobre la configuración de registro.fuente
explain analyze
una consulta lenta en el empate que se ejecutó, es posible que desee comenzar a probar con esto ya que 8.4 aún no se ha lanzado, pero es una buena opción saber que sucedió en el momento de la ejecución , si la salida de analizar explicar está bien es probable que esté ejecutando en problemas con I / o o límites de CPU, pero al menos sabrás que no es la propia consultaEl
auto_explain
módulo es muy útil para esto. No solo registrará las declaraciones, registrará sus planes de ejecución e incluso puede registrar las declaraciones ejecutadas dentro de las funciones PL / PgSQL. El impacto en el rendimiento es bastante bajo a menos que habilite el análisis, en cuyo caso incurrirá en un poco de sobrecarga de tiempo para todas las consultas.Ver
auto_explain
en la documentación.fuente
auto_explain
, está en su lista de módulos bendecidos. Consulte la documentación en docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…Por supuesto, puede detectar las consultas más lentas usted mismo, pero le aconsejo que use pgFouine , un analizador de registros PostgreSQL. Es fácil de instalar y realmente útil.
Ejemplos de informes: aquí y aquí .
fuente