RE: transacciones dentro de una transaccion

From: Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu>
To: gorka <glana(at)cestel(dot)es>, Miguel Beltran R(dot) <yourpadre(at)gmail(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: transacciones dentro de una transaccion
Date: 2012-02-01 13:59:56
Message-ID: 294D3D02D5E18D42827B2ECFEADEB688231F7D7B53@mx-interno.vnz.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de gorka
Enviado el: miércoles, 01 de febrero de 2012 04:38:AM
Para: Miguel Beltran R.
CC: pgsql-es-ayuda(at)postgresql(dot)org
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 <glana(at)cestel(dot)es<mailto:glana(at)cestel(dot)es>> 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 (pgsql-es-ayuda(at)postgresql(dot)org<mailto:pgsql-es-ayuda(at)postgresql(dot)org>)
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

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message anthony 2012-02-01 14:38:38 Re: Conectar a SQL Server 8.0.2055 desde PostGres 8.4 en Windows
Previous Message Aitor Gil Martin 2012-02-01 09:37:44 Conectar a SQL Server 8.0.2055 desde PostGres 8.4 en Windows