From: | Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com> |
---|---|
To: | Kernel <jucabapa(at)gmail(dot)com> |
Cc: | "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>, Hellmuth Vargas <hivs77(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: modos de bloqueo |
Date: | 2016-04-21 16:36:51 |
Message-ID: | CAJGNTePLHM8YN5028szzjV4M9r16Mt+XW63nor_kiHHSZTubeA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2016-04-21 11:06 GMT-05:00 Kernel <jucabapa(at)gmail(dot)com>:
>
> Las facturas tienen que ser correlativas , sin saltos y por supuesto la
> fecha de una factura no puede ser menor que una con numero superior.
>
> Voy a utilizar el select for update con la clausula nowait a una tabla que
> voy a crear para el proceso, asi puedo bloquear por empresa,serie.
> No voy a hacer el select for update a la propia tabla de series, por que en
> el mismo registro esta el ultimo numero de
> factura,albaran,pedido,presupuesto, orden de fabricacion y bloquearia muchos
> procesos.
>
Creo que tienes algo mal en tu diseño. Si luego necesitas por ejemplo
"orden de importacion" u "orden de compra" tendrías que alterar la tabla para
crear nuevas columnas, no?
Además como menciono Ivan basta que alguien quiera hacer muchas facturas
o una muy larga para que bloquee al resto.
> Voy a leer el ultimo numero de factura al principio, lo incrementare en
> memoria y solo escribiré en el fichero de series al final, justo antes del
> commit, creo que es la mejor solución ..
>
Esto también parece una mala idea, si el número no esta pre impreso
en la hoja y puedes simplemente tomar un número hazlo siempre al
*final* del proceso, así el tiempo de bloqueo es mínimo (también deberías
usar la fecha al final del proceso, usa clock_timestamp() en lugar de now())
--
Jaime Casanova www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2016-04-21 19:57:37 | Re: modos de bloqueo |
Previous Message | Kernel | 2016-04-21 16:34:31 | Re: modos de bloqueo |