Documentos de Académico
Documentos de Profesional
Documentos de Cultura
No obstante, este uso de los segmentos de rollback no va a causar nunca por s solo
un error como el antes mencionado (ORA-01650 Unable to extend rollback segment... u
ORA-01651 Unable to extend undo segment...). Sin embargo, s que puede provocar un
error del tipo "ORA-01555 Snapshot too old".
Para que una sentencia SELECT pueda generar los errores ORA-01650 u ORA-
01651, es necesario que est generando segmentos de rollback y los motivos pueden
ser los siguientes:
Lo ms corriente es que la causa sea que la sentencia SELECT contenga una clusula
FOR UPDATE, cuando esto ocurre la base de datos Oracle bloquea todos los
registros necesarios antes de que la sentencia SELECT empiece a devolver
resultados, y bloquear un registro en la base de datos Oracle implica modificar un
bloque de la base de datos para registrar dicho bloqueo. Por otro lado, cada vez que
se modifica un bloque de la base de datos, se necesita generar un undo para esa
operacin.
Demostrar este hecho es muy sencillo. Creemos una sesin SQL y ejecutemos los
siguientes comandos sin que haya ningn otro usuario utilizando la base de datos:
No rows selected
SQL> BEGIN
2 FOR cursor IN (
3 SELECT * FROM nombre_tabla
4 FOR UPDATE)
5 LOOP null;
6 END LOOP;
7 END;
10 /
USED_UBLK
---------
932
SQL> COMMIT;
Hay varios tipos de sentencias en las que Oracle se ve en la obligacin de utilizar los
segmentos temporales:
Se puede dar el caso en el que algunas consultas en las que intervengan joins en los
que no haya ndices que faciliten la unin y en las que se den a la vez sentencias del
tipo "group by" y "order by" o incluso "distinct", en las que no solo se requiere de un
nuevo segmento temporal sino que pueden adquirirse dos segmentos para poder
realizar dichas consultas.
En Oracle tambin existen las tablas temporales y los ndices temporales para dichas
tablas. Estos objetos tambin utilizan segmentos temporales, pero se les asigna y
desasigna de forma diferente a como se hace con las consultas, creacin de ndices y
ordenaciones.