Como configurar Postgresql para capturar los queries que demoran demasiado

29 de setiembre de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Un tip sobre como configurar PostgreSQL para encontrar aquellos queries que en Odoo tardan demasiado. Primero ingresen a psql para ver la configuración del parámetro log_min_duration_statement. Si ejecutan el siguiente query:

 select * from pg_settings where name like '%log_min_duration_statement%';

El cual nos mostrará la configuración del parámetro log_min_duration_statement


El parámetro log_min_duration_statement nos permite registrar en el archivo de log de PostgreSQL los queries que superan una duración determinada. Puede tener los siguientes valores:

  • -1: no loguea ningún query
  • 0: loguea todos los queries
  • valor numérico superior a cero: en milisegundos. :Loguea los queries cuya duración supera la cantidad indicada en el parámetro. Por ejemplo si se especifica 500 se registrarán todos los queries que superan los 500 ms de ejecución

Vamos ahora a indicarle a la base de datos que nos loguee la duración de aquellos queries que superan los 200 ms (un buen sistema de Odoo no debería tener queries que superen los 100ms). En psql deberían hacer:

alter system set log_min_duration_statement = 200;
SELECT pg_reload_conf();

Lo que modifica la configuración del sistema y recarga la misma (sin necesidad de reiniciar la base de datos. Ese detalle es más que interesante).


Ahora podemos usar Odoo durante un buen rato. Luego podemos revisar los contenidos del archivo de log y veremos cosas como


Donde podemos observar un query que duró más de medio segundo y que es candidato de ser optimizado.

Gustavo Orrillo 29 de setiembre de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario