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