Re: modos de bloqueo

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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