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
