[Pgsql-ayuda] Manejo de Rollback

Alvaro Herrera alvherre@dcc.uchile.cl
Thu, 23 Oct 2003 10:26:28 -0300


On Thu, Oct 23, 2003 at 09:31:18AM -0300, Carmen Gloria Sepulveda Dedes wrote:

> Entiendo que efectivamente no existen los segmentos de rollback, pero mi
> temor esta asociado a que tengo funciones (debidas a una migracion) que
> tienen una gran cantidad de actividad (insert, update y delete) sobre tablas.
> Como esto estaba en oracle, se hacia commit cada cierta cantidad de acciones,
> pero en pgsql no se puede hacer y no se si esto afectara el performance de
> la base de datos o hara que las funciones tomen mas tiempo en ejecutarse
> o bien que se genere algun tipo de error (distinto de espacio en disco).

Nada que se me ocurra.  Siempre que no tengas los problemas obvios:
violación de restricciones de unicidad o llaves foráneas, etc.  Si
ocurren esos errores va a fallar toda la transacción y tendrás que
empezar de nuevo.  Si no, no deberías tener problemas.

Si hacen mucho update/delete quizás te interese ejecutar VACUUM mientras
la función se ejecuta, para mantener el estado estacionario de espacio
libre ... (no VACUUM FULL obviamente)

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"In fact, the basic problem with Perl 5's subroutines is that they're not
crufty enough, so the cruft leaks out into user-defined code instead, by
the Conservation of Cruft Principle."  (Larry Wall, Apocalypse 6)