Yo en esos casos de apuro opto por el "depurador del hombre pobre":
Encierro las partes que quiero depurar con

inicio = clock_timestamp();
..
..
[codigo codigo]
fin = clock_timestamp();

raise notice 'tiempo de bloque de ejecucion = %', fin - inicio;


Tambien podrias, claro, guardar los tiempos en una tabla. Supongo que con un 
par de iteraciones lograras encontrar la parte lenta.


HTH
Gerardo

----- Mensaje original -----
> De: "motum hesa" <mot...@gmail.com>
> Para: "Lista PostgreSQL" <pgsql-es-ayuda@postgresql.org>
> Enviados: Miércoles, 19 de Agosto 2015 17:14:44
> Asunto: [pgsql-es-ayuda] Loggear consultas de triggers
> 
> 
> Buenas tardes.
> 
> 
> Actualmente en un servidor estoy teniendo unos problemas pues un
> Insert está tardando más de 5 segundos, esta tabla tiene un trigger
> AFTER INSERT en este trigger se realizan algunos cálculos y consulta
> a otra tabla, una vez realizado los datos que están aquí son
> insertados a otra tabla, esta otra tabla a su vez tiene un trigger
> BEFORE INSERT, este es el trigger más pesado (más de 2 mil lineas) y
> realiza consultas, llamadas a funciones y al final inserta los datos
> procesados a una tabla histórica.
> 
> 
> Desgraciadamente el log de PostgreSQL sólo me dice que el INSERT está
> tardando mucho, me gustaría saber qué consultas dentro del trigger
> están tardando tanto para poder empezar a optimizarlas,¿es esto
> posible?. Intente con log_statement=all pero no me sirivió mucho
> 
> 
> Estoy usando PostgreSQL 9.3.8 en FreeBSD 10.1
> 
> 
> Muchas gracias de antemano.
> 
> 
> 
> 

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to