Podrías revisar tu modelo de datos, para ver si existe alguna vía de mejorar la 
ejecución de tu función. Tal vez, podrías tener dentro de tu base de datos 
tablas históricas donde podrías almacenar aquellos registros que solamente 
harían falta para reportes.

Saludos.

De: [email protected] 
[mailto:[email protected]] En nombre de gorka
Enviado el: miércoles, 01 de febrero de 2012 04:38:AM
Para: Miguel Beltran R.
CC: [email protected]
Asunto: Re: [pgsql-es-ayuda] transacciones dentro de una transaccion

Buenas..

Digo lo del dblink porque por lo que he visto, si dentro de una funcion tu 
haces uso de un dblink, se establece una nueva transacción para la consulta que 
tu ejecutes por medio del dblink, pero me imagino que ese uso del dblink será 
costoso.

Saludos

El 31/01/12 22:30, Miguel Beltran R. escribió:

El 31 de enero de 2012 06:41, gorka <[email protected]<mailto:[email protected]>> 
escribió:
Hola:

En una aplicación en la que estoy participando estamos haciendo inserciones 
masivas de operaciones de clientes ejecutando un procedimiento almacenado que 
recorre una tabla, y para cada fila de esa tabla recorre otras, con el fin de 
insertar o actualizar en las tablas definitivas, que están en otro esquema, que 
es en el que funciona la aplicacion web.
Pues bien, resulta que como ese proceso de recorrer varias tablas y actualizar 
o insertar en el esquema de trabajo es bastante complejo, y además en casos de 
clientes especiales, hay muchos registros de operaciones y la transacción de 
incorporación a tablas de trabajo se demora bastante en el tiempo, la 
aplicación web empieza a escribir en las mismas tablas de trabajo, y se 
producen bloqueos.
Como solución a esto, nos proponen que cada paso del bucle, es decir, cada 
manejo de una operación sea una transacción, vamos, que quieren que se haga un 
commit dentro del procedimiento, pero evidentemente eso no se puede hacer.
Sabeis si hay alguna solución a este problema, aparte de hacer uso de dblink, 
como he visto por ahi?? La solución de incorporar datos cuando no se esté 
trabajando con la aplicación no existe, porque los ficheros de los clientes hay 
que incorporarlos al sistema en cuanto llegan, y no depende de nosotros.

Muchas gracias y saludos

-
Enviado a la lista de correo pgsql-es-ayuda 
([email protected]<mailto:[email protected]>)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


¿Todo esta en el mismo motor de base de datos pero en diferentes esquemas?
¿O porque mencionas dblink?

--
________________________________________
Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida

Responder a