Re: modos de bloqueo

From: Carlos Joaniquet <cjtambur(at)yahoo(dot)es>
To: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
Cc: Kernel <jucabapa(at)gmail(dot)com>, "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 19:59:10
Message-ID: C5BEDD50-A8E9-4F1A-9771-63175620E94A@yahoo.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Nosotros hemos creado una tabla de punteros con tipo factura, ejercicio y número y lo controlo todo con un disparador. Nos funciona bien.

Carlos Joaniquet Tamburini

> El 21 abr 2016, a las 18:36, Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com> escribió:
>
> 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 suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

-
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

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martín Díaz 2016-04-22 17:03:49 Réplica BDR bloqueada por consulta DLL
Previous Message Alvaro Herrera 2016-04-21 19:57:37 Re: modos de bloqueo