Consistencia de lectura
La consistencia de lectura es la capacidad que tiene Oracle de servir los datos como eran al momento de comenzar de una consulta determinada.
La consistencia de lectura en Oracle es automática, aunque se puede modificar cambiando el nivel de aislamiento de la base de datos.
Ejemplo:
- Digamos que hacemos una consulta a la base de datos a las 9:00 am, y entre los datos que necesita leer la consulta se encuentra el 9 que se muestra en la figura. Pensemos también que esa consulta es muy grande, porque debe hacer numerosos cálculos y operaciones, entonces va a tardar quizá una hora.
- Unos minutos después, cuando Oracle no haya terminado de completar la consulta, un usuario hace un UPDATE y un COMMIT del bloque 9 en la base de datos.
- El dato (9) será reemplazado entonces por el 10 en el fichero de datos. Mientras que el dato antiguo (9), se encontrará entonces en el UNDO.
- El bloque 10, es entonces, posterior al inicio de la consulta. Si se siguiera leyendo desde dicho bloque, en este momento tendria el dato 10, y por tanto, hubiera un problema de consistencia de datos.
- Oracle entonces se percata de que el bloque desde donde estaba leyendo la consulta ha cambiado después de haber iniciado la consulta, y se traslada a tomar el dato antiguo al UNDO. Ya que se supone que queramos los datos tal y
consistencia lectura