You are on page 1of 21

UNIDAD V.

TRANSACCIONES Competencia especfica a desarrollar Aplicar transacciones para garantizar la consistencia de la base de datos
TEMAS
5.1 5.2 5.3 5.4 5.5 Conceptos bsicos Propiedades de las transacciones Grados de consistencia Niveles de aislamiento Instrucciones COMMIT y ROLLBACK

Uso de transacciones

Iniciar transacciones

Finalizar transacciones

Explcitas De confirmacin automtica Implcitas


BEGIN TRANSACTION UPDATE savings . . . UPDATE checking . . . COMMIT TRANSACTION

Instruccin COMMIT Instruccin ROLLBACK

Administracin de transacciones y bloqueos

Introduccin

Introduccin a las transacciones y los bloqueos Administracin de las transacciones Bloqueos en SQL Server Administracin de los bloqueos

Introduccin a las transacciones y los bloqueos


Las transacciones aseguran que varias modificaciones a los datos se procesan juntas Los bloqueos impiden los conflictos de actualizacin

Las transacciones estn serializadas

El bloqueo es automtico
Los bloqueos permiten usar los datos al mismo tiempo

Control de simultaneidad

Administracin de las transacciones

Recuperacin de transacciones y puntos de comprobacin Consideraciones para el uso de transacciones Establecimiento de la opcin de transacciones implcitas Restricciones en las transacciones definidas por el usuario

Recuperacin de transacciones y puntos de comprobacin


Recuperacin de transacciones
1 Accin requerida
Ninguna

2
3 4 5 Puntos de comprobacin

Confirmar

Deshacer
Confirmar Deshacer

Fallo del sistema

Consideraciones para el uso de transacciones


Recomendaciones para las transacciones

Las transacciones deben ser lo ms cortas posible


Preste atencin a ciertas instrucciones Transact-SQL Evite las transacciones que requieran la intervencin del usuario Se pueden anidar transacciones, pero no se recomienda Utilice @@trancount para determinar el nivel de anidamiento

Aspectos del anidamiento de transacciones


Establecimiento de la opcin de transacciones implcitas

Una transaccin se inicia automticamente cuando se ejecutan determinadas instrucciones


No se permiten transacciones anidadas La transaccin debe completarse explcitamente con COMMIT o ROLLBACK TRANSACTION De forma predeterminada, esta opcin est desactivada
SET IMPLICIT_TRANSACTIONS ON

Restricciones en las transacciones definidas por el usuario

Ciertas instrucciones no se pueden incluir


ALTER DATABASE BACKUP LOG CREATE DATABASE DROP DATABASE

RECONFIGURE RESTORE DATABASE RESTORE LOG UPDATE STATISTICS

Bloqueos en SQL Server

Problemas de simultaneidad impedidos por los bloqueos


Recursos que se pueden bloquear Tipos de bloqueos Compatibilidad de los bloqueos

Problemas de simultaneidad impedidos por los bloqueos

Actualizacin perdida Dependencia no confirmada (lectura no confirmada) Anlisis incoherente (lectura no repetible) Lecturas fantasma

Recursos que se pueden bloquear


Elemento Descripcin

RID Clave
Pgina Extensin Tabla Base de datos

Identificador de fila
Bloqueo de fila dentro de un ndice Pgina de datos o pgina de ndice Grupo de pginas Tabla completa Base de datos completa

Tipos de bloqueos
Bloqueos bsicos

Compartidos
Exclusivos Intencin Actualizacin

Bloqueos para situaciones especiales


Esquema
Actualizacin masiva

Compatibilidad de los bloqueos

Los bloqueos pueden ser compatibles o incompatibles con otros bloqueos


Ejemplos

Los bloqueos compartidos son compatibles con todos los bloqueos excepto con los exclusivos Los bloqueos exclusivos no son compatibles con ningn otro bloqueo

Los bloqueos de actualizacin son compatibles slo con los bloqueos compartidos

Administracin de los bloqueos

Opciones de bloqueo en el nivel de sesin Arquitectura de bloqueos dinmicos Opciones de bloqueo en el nivel de tabla Interbloqueos Presentacin de informacin acerca de los bloqueos

Opciones de bloqueo en el nivel de sesin

Nivel de aislamiento de las transacciones


READ COMMITTED (DEFAULT) READ UNCOMMITTED REPEATABLE READ SERIALIZABLE Limita el tiempo de espera para un recurso bloqueado Use SET LOCK_TIMEOUT

Tiempo de espera para los bloqueos


Arquitectura de bloqueos dinmicos


Bloqueo dinmico

Costo

Fila

Pgina Granularidad

Tabla

Costo de bloqueo Costo de simultaneidad

Opciones de bloqueo en el nivel de tabla


selas con precaucin

Puede especificar una o ms opciones de bloqueo para una tabla


Utilice la parte sugerenciasDeOptimizador de la clusula FROM de las instrucciones SELECT o UPDATE Suplanta las opciones de bloqueo en el nivel de sesin

Interbloqueos

Cmo SQL Server termina los interbloqueos


Cmo minimizar los interbloqueos Cmo personalizar la configuracin de tiempo de espera de bloqueo

Prcticas:

Prctica 1. Realizar ejercicios donde utilice los diferentes grados de consistencia y niveles de aislamiento, se evale cmo afecta el desempeo el nivel de aislamiento de la transaccin y se presenten deadloks.

Prctica 2. Realizar distintas transacciones en una base de datos para evaluar cmo afecta el nivel de aislamiento de la transaccin.
Prctica 3. Desarrollar ejercicios para ejecutar instrucciones DML bajo el concepto de transaccin y se visualice el efecto del commit o rollback

You might also like