Hola lista,
Espero se encuentren muy bien, les escribo porque tengo una duda con
respecto a si estoy realizando bien las actualizaciones en una tabla o tal
vez sea algo del diseño de la solución.
Tengo una tabla A que busca llevar el inventario de productos, que podría
describirse así:

Id                   int
nombre          text
precio            numeric(8,2)
cantidad         int
disponibilidad int

Cada vez que se crea un nuevo registro se define la cantidad y la
disponibilidad que son las mismas. También se tiene un check constraint
donde cantidad >= disponibilidad.

Por otro lado cuando se tiene otra tabla B que representa las compras:

Id                  int
producto_id   int

Cada vez que se agrega un registro en B se ejecuta un trigger que hace un
update a A para restar disponibilidad con un: UPDATE A SET disponibilidad =
disponibilidad - 1 WHERE id = New.id

El problema es que estas tablas pueden tener mucha concurrencia, muchos
usuarios finales intentando comprar y por temporalidad compran el mismo
producto y cuando hay picos de usuarios el update puede llegar a tardar
hasta 60 segundos o mas en completarse.

Mi duda es si hay alguna forma de mejorar el rendimiento de este update.


De antemano muchas gracias.



--

Reply via email to