ORA-01555 snapshot too old

maria326
14 de Septiembre del 2005
Hola,
necesito ayuda urgente.
Tenemos un proceso que inserta y borra basantes registros y casi al final del proceso nos dá este error.
La base de datos es Oracle9 y tenemos los parámetros undo bien parametrizados.
También hemos comprimido los tablespaces.
Ya no sabemos que hacer.

Me podeís ayudar?

Un Saludo,
Maria

Jor-El
14 de Septiembre del 2005
Primero deberías enterarte porque te da ese error y sobre todo QUE ES LO QUE SIGNIFICA, pero intentaremos ser buenos............................

En el proceso de inserción, no se como lo harás, pero un cursor y un COMMIT cada N registros hace maravillas.

En el de DELETE tres cuartos de lo mismo.

Si te funciona me debes un besito y si no, tambien, ¡¡ QUE LECHES ¡¡¡


chemian
14 de Septiembre del 2005
Tambien puedes probar a aumentar el parametro undo_retention, pero sin olvidar la solucion de Jor-El.
Este error se debe a que el undo se queda pequeño para tantos cambios, por lo que el commit te lo liberaria, y el undo retention te especifica el tiempo de permanencia de los datos en el undo (especificado en segundos).
Un saludo.

pp
14 de Septiembre del 2005
pero si te ha dicho que los parámetros los tiene bien "parametrizados"......
jajaja

maria326
14 de Septiembre del 2005

Tengo un commit parametrizado por número de registros, he probado con 100, con 2000, etc....
También incrementamos ayer el undo_retention..encontramos una select que supuestamente nos especificaba que valor debía de tener y ni aún así. El error se suele producir en el
borrado (que tiene el mismo volumen), pero la diferencia es que para borrar utilizo sentencias dbms_sql., también he notado que el proceso de borrado tarda mucho más....Dbms_Sql.Parse es más lento que si hago un delete normal????

Gracias,
Maria.