Excerpts from Jorge Garcia's message of mié sep 19 12:18:18 -0300 2012: > Hola Grupo Buenos Días, > > Tengo una función que realiza cálculos a unos 80 mil registros los > registros los recorro en un cursor y se hace calculo registro por registro > y quiero que no se haga commit al final de todo el procesamiento si no que > se haga commit por cada registro procesado y saber si se proceso o > hubo algún error. como puedo hacer eso?? de antemano gracias por la ayuda > que me puedan dar.
Es mala idea hacer commit por cada registro, a menos que uses commit asincrónico; de lo contrario el rendimiento es muy malo. Lo que sí podrías intentar hacer es poner un bloque begin/exception/end en plpgsql, para cada cursor; internamente lo que eso hace es poner un savepoint, de manera que si el cálculo falla para un registro, se ejecuta el bloque exception, la transacción no se aborta, y se continúa con el siguiente. El rendimiento es mucho mejor que poner un commit para cada registro, pero tiene un cierto costo de rendimiento. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
