En este momento el proceso que estamos utilizando para insertar conjuntos de registros es algo como esto:¿Puedo sustituir puntos de rescate por iniciar nuevas transacciones en Oracle?
(y tenga en cuenta que "conjunto de registros" significa algo así como el registro de una persona junto con sus direcciones, números de teléfono o cualquier otras tablas unidas).
- Comenzar una transacción.
- Inserta un conjunto de registros que están relacionados.
- Comprométete si todo fue exitoso, deshazte de lo contrario.
- Regrese al paso 1 para el siguiente conjunto de registros.
¿Deberíamos estar haciendo algo más como esto?
- iniciar una transacción al principio de la secuencia de comandos
- Iniciar un punto de guardado para cada conjunto de registros.
- Inserta un conjunto de registros relacionados.
- Retroceda al punto de guardado si hay un error, continúe si todo es exitoso.
- Confirme la transacción al comienzo de la secuencia de comandos.
Después de tener algunos problemas con ORA-01555 y la lectura de algunos artículos (Pregunta a Tom como this one), estoy pensando en probar el segundo proceso. Por supuesto, como señala Tom, comenzar una nueva transacción es algo que debería ser definido por las necesidades del negocio. ¿Vale la pena probar el segundo proceso o es una mala idea?
+1, pregunta interesante (también para la discusión de abajo) – DCookie
Sería útil si coloca su valor actual para UNDO_RETENTION y el tiempo necesario para que se ejecute el script completo y el procesamiento de cada conjunto. –