Re: performance de ejecucion de triggers hay alguna penalidad este es mi caso

From: Jose Mercedes Venegas Acevedo <jvenegasperu(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: performance de ejecucion de triggers hay alguna penalidad este es mi caso
Date: 2020-10-09 18:09:58
Message-ID: CA+KjtGdEfQQBH2aW2BMSjERx53oHOW-ughrtq_beTAnXdvxX4w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias Alvaro

Como siempre muy ilustrativo tu respuesta estoy en ambos escenarios tengo
un conjunto de trigger que luego de efectuar unas cuantas operaciones
geometricas asignan valores al new antes del insert y por otro lado tengo
un conjunto de triggers AFTER que luego del insert ejecutan operaciones de
modificacion en otras tablas que a su vez al modificarse ejecutan otros
triggers.

En conclusión voy a ver como puedo minimizar el número de operaciones en
los triggers y tratar de unir algunos para que sean uno solo ya que la
mayoria lo que hacen es al darse un insert van e insertar y actualizan
otras tablas que a su vez insertar y actualizan otras por los triggers que
manejan, para el caso de los news creo que tambien podria agrupar algunos
en uno solo aunque eso signifique escribir mas triggers personalizados para
cada tabla.

Gracias nuevamente que tengas buen dia.

El vie., 9 oct. 2020 a las 12:17, Alvaro Herrera (<alvherre(at)alvh(dot)no-ip(dot)org>)
escribió:

> Jose Mercedes Venegas Acevedo escribió:
>
> > Estoy moviendo mi BD a postgres 13 y estoy aprovechando para hacer
> algunos
> > ajustes actualmente tengo un conjunto de triggers comunes para unas 250
> > tablas que clasifican objetos geométricos el tema es que estas
> asignaciones
> > automaticas estan empezando a crecer porque tengo casos en los que
> ejecuto
> > digamos hasta 12 trigers por cada insercion de registro y como se trata
> de
> > informacion geografica en ocasiones se insertar en numeros de miles de
> > registros.
>
> Hola José, en general no vale la pena optimizar multiples triggers para
> convertirlos en uno solo, asumiendo que son triggers BEFORE que
> modifican NEW, es decir no estás haciendo reales UPDATE en el trigger
> sino modificando el registro en memoria. Seguramente si haces un
> "micro-benchmark" vas a poder medir una diferencia de llamar un trigger
> que hace 5 cosas en vez de cinco triggers que hacen una cosa cada uno;
> pero en la práctica es difícil que esa diferencia tenga importancia.
>
> Ahora, si se trata de registros AFTER que hacen otras operaciones, por
> ejemplo un INSERT o un UPDATE en otra tabla, entonces sí te puede
> convenir mezclar varios triggers en uno solo, si es que eso te permite
> reducir la cantidad de operaciones totales. Pero si cada trigger hace
> operaciones separadas, entonces la cantidad de triggers tampoco debería
> importar mucho.
>
> Si tienes constraints DEFERRED también cambia la respuesta.
>
> Saludos
>

--
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Yessica Brinkmann 2020-10-10 00:33:00 Interfaz de usuario del Index Adviser de Gurjeet Singh.
Previous Message Carlos Joaniquet Tamburini 2020-10-09 17:58:38 Re: Migrar versión 9.1 a 13?