Está en la página 1de 8

Niveles de aislamiento

O Las transacciones especifican un nivel de aislamiento

que define el grado en que se debe aislar una transaccin de las modificaciones de recursos o datos realizadas por otras transacciones.
O Los niveles de aislamiento se describen en funcin de

los efectos secundarios de la simultaneidad que se permiten, como las lecturas de datos sucios o las lecturas fantasmas

Los niveles de aislamiento se pueden dividir en:


O Lectura no confirmada O Lectura confirmada O Lectura repetible O Instantnea O Serializable

Esto es bajo las normas de SQL server

Definicin de los niveles de aislamientos


O READ UNCOMMITTED O Lecturas no confirmadas, realmente lo que sucede en este

nivel de aislamiento es que los usuarios pueden leer datos que an no estn confirmados, y que por tanto pueden llegar a no existir nunca. Los problemas que presenta este nivel de aislamiento son los siguientes:
O Lecturas sucias: Lee datos que no han llegado a validarse. O Lecturas no repetibles: Dos sentencias SELECT iguales y

consecutivas podran devolver datos diferentes. O Datos fantasma: En dos sentencias SELECT iguales y consecutivas podran aparecer y desaparecer filas.

Definicin de los niveles de aislamientos


O READ COMMITED O Lecturas confirmadas, este es el nivel de aislamiento por

defecto en SQL Server, no lee datos que no estn confirmados, sino que esperara (se quedara bloqueado) a que esos datos estn confirmados. Los bloqueos que establece mientras se lee informacin, tan solo permanecen activos durante el tiempo de la ejecucin no durante toda la transaccin y no se ve bloqueado por lecturas. Los problemas que tiene este nivel de aislamiento son:
O Lecturas no repetibles: Dos sentencias SELECT iguales y

consecutivas podran devolver datos diferentes.


O Datos fantasma: En dos sentencias SELECT iguales y

consecutivas podran aparecer y desaparecer filas.

Definicin de los niveles de aislamientos


O REPETEABLE READ O Lecturas repetibles. Este nivel de aislamiento garantiza

que dos SELECT consecutivas dentro de una transaccin devolvern la misma informacin, y lo hace creando bloqueos compartidos sobre los registros que lee de tal forma que no pueden ser modificados. El nico problema que presenta es:
O Datos fantasma: En dos sentencias SELECT iguales y

consecutivas podran aparecer filas.

O SERIALIZABLE

O Este nivel de aislamiento no tiene ni siquiera el

problema de datos fantasma, por que cuando realiza un SELECT crea bloqueos compartidos no solamente sobre los registros que existen sino sobre los nuevos que pudiesen llegar (inserts) de tal forma que dos instrucciones SELECT consecutivas dentro de la misma transaccin devolvern exactamente los mismos datos.
O En este nivel de aislamiento las lecturas solo se ven

bloqueadas por las escrituras, pero las escrituras se ven bloqueadas por lecturas incluso escrituras de tipo INSERT que en el nivel de aislamiento REPEATABLE READ no se veran afectas.

SINTAXIS
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION SELECT campo FROM tabla where condicion

También podría gustarte