Mi aplicación de base de datos ejecuta muchas consultas diferentes. Lo configuré log_min_duration_statement
en 1000. Pero las consultas registradas allí no siempre son lentas, la mayoría de las veces solo toman unos pocos ms.
¿Es posible obtener una estadística de todas las consultas y con qué frecuencia demoraron más de 1000 ms?
postgresql
performance
usuario2047809
fuente
fuente
Respuestas:
Instale la extensión pg_stat_statements con el comando SQL
CREATE EXTENSION pg_stat_statements
Es posible que desee asegurarse de crear esto utilizando un usuario apropiado (como el usuario que utiliza su aplicación o alguna cuenta dba). Tenga en cuenta que cualquier usuario que cree la extensión también será el propietario.
Esto requerirá un reinicio del servidor para que sea utilizable (porque debe cambiar la configuración en postgresql.conf un poco que afecta el consumo de memoria), pero le dará estadísticas sobre todas las consultas.
Consulte la página de documentación para obtener más información sobre lo que proporciona pg_stat_statements. Consulte aquí para obtener una referencia rápida sobre la configuración del archivo de configuración postgresql.conf para pg_stat_statements.
Una vez que lo tenga instalado y en ejecución, puede ver las estadísticas consultando la vista pg_stat_statements.
fuente
Cómo @JoishiBodio dijo que puede usar la
pg_stat_statements
extensión para ver estadísticas de consultas lentas. Para aquellos que luchan con la instalación (como lo hice):Verifique si
pg_stat_statements
está en la lista de extensiones disponibles:Intente instalar el
postgresql-contrib
paquete a través de su administrador de paquetes del sistema, en Debian / Ubuntu:Luego haz el paso 1 nuevamente.
pg_stat_statements
a lashared_preload_libraries
configuración de PostgreSQL:vía
postgres.conf
:a través de argumentos de línea de comando (¡sin comillas!):
Luego cree la extensión en una base de datos:
fuente