http://bit.ly/SQSummit
Entender cómo funcionan los bloqueos en SQL Server, y los niveles de aislamiento. Valorar las alternativas que tenemos para solucionar ese tipo de cuestiones.
2. ¿Qué esperar de esta charla?
• ¿problemas de bloqueos? ¿en lecturas?¿en escrituras?
• Niveles de aislamiento, bloqueos y latches
• Algunas soluciones
3. Agenda
• Atomicidad, consistencia, aislamiento, durabilidad
• Generar bloqueos
• Puñetero with nolock
• Niveles “standard” vs Niveles basados en
instantaneas
Conceptos fundamentales de niveles
de aislamiento
• Instantaneas y sinónimos
Otras formas de leer datos
Conclusiones
4. Conceptos fundamentales de niveles de aislamiento
Atomicidad
• Si cuando una
operación consiste en
una serie de pasos,
bien todos ellos se
ejecutan o bien
ninguno, es decir, las
transacciones son
completas.
Consistencia
• (Integridad). Es la
propiedad que asegura
que sólo se empieza
aquello que se puede
acabar. Por lo tanto se
ejecutan aquellas
operaciones que no
van a romper las reglas
y directrices
de Integridad de la
base de datos
Aislamiento
• Esta propiedad
asegura que una
operación no puede
afectar a otras. Esto
asegura que la
realización de dos
transacciones sobre la
misma información
sean independientes y
no generen ningún tipo
de error.
Durabilidad
• Esta propiedad
asegura que una vez
realizada la operación,
ésta persistirá y no se
podrá deshacer aunque
falle el sistema y que
de esta forma los datos
sobrevivan de alguna
manera.
5. Algunos conceptos sobre bloqueos
Exclusivos y compartidos
Intentos de
bloqueos
Exclusivos y compartidos
Bloqueos
Vaya cosas me pasan…
Deadlock
6. Los niveles de aislamiento estandard
Read
uncommited
Read
Commited
Repeatable
Read
Serializable
8. Niveles de aislamiento
Tienen que cumplir el ACID
• Cada gestor de base de datos decide como lo implementa
Tipos
• Basados en bloqueos
• Basados en instantáneas
• La versión dura lo que dure la transacción
• La versión dura lo que dure el comando