2010/12/2 Luis Gerardo Muro Ramos <[email protected]>:
> Saludos a todos
> Creo que necesito un poco de su ayuda :D
> En una aplicación OB, estoy pasando registros de una remisión generando dos
> facturas, hay aproximadamente 25 usuarios concurrentes como maximo utilizo
> postgres 8.4.4, micro 8 cores, 8 G de ram en un servidor dedicado.
>
> Basicamente tengo una cuenta que varia de 1 registro a 500 y las divide en
> factura para el cliente y aseguradora, cuando son de 1 a 30 registros no hay
> problema incluso si una cuenta tiene 500 registros solo tarda de 60 a 120s,
> el problema es cuando varias cuentas 2-5 de +50 registros mi proceso se
> tarda hasta 10 minutos o mas.
> La db se le ejecuta vacum full y mejora pero no significativo, el proceso lo
> hace un procedure que a su vez manda llamar a dos mas para cada factura,
> utilizo insert select en vez de barrer un cursor, he buscado varias
> alternativas pero solo seme ocurre el lock, cada función es de inserción por
> lo que no debe de hacer un lock no hay posibilidades de duplicar registros
> Cuando esta ejecutanto el proceso me aumenta los locks de 21 a 200 y son de
> tipo RowShareLock AccessShareLock ExclusiveLock en distintas tablas.
> Como podría desactivar que haga el lock o en filar mis procedimientos para
> evitar esta saturación ?

¿Probaste serializar las transacciones?:

SET TRANSACTION ISOLATION LEVEL TO SERIALIZABLE;

http://www.postgresql.org/docs/8.4/static/transaction-iso.html

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a