Me gustaría recopilar estadísticas sobre las consultas de mayor ejecución en mi base de datos.
Para eso necesito saber cómo puedo rastrear consultas para poder crear vistas o vistas materializadas para almacenar en caché los resultados de las consultas de mayor ejecución ya que tengo una gran base de datos.
postgresql
view
materialized-view
mamesaye
fuente
fuente
Respuestas:
Como alguien dijo en los comentarios, pg_stat_statements es la forma de obtener las estadísticas. Pon esto en tu
postgresql.conf
:Luego ejecute esta consulta:
Después de eso, esta consulta de muestra (copiada de los documentos vinculados anteriormente) le dará las estadísticas de las 5 consultas principales de todas las bases de datos :
Si desea resultados para una sola base de datos , debe filtrar por el
dbid
cual puede obtenerpg_database
por nombre de base de datos. Agregue esta cláusula WHERE a la consulta anterior:También podrías hacer una unión.
Cuando esté probando esto, puede ser una buena idea excluir las consultas a las tablas de estadísticas / esquemas, por ejemplo:
Hay un montón de herramientas gratuitas y comerciales que pueden ayudarlo a visualizar los datos.
fuente