Niveles de aislamiento basado en el control de versiones de filas del motor de base de datos
Microsoft SQL Server Database Engine (Motor de base de datos de SQL Server) contiene una nueva implementación de un nivel de aislamiento de transacción existente, lectura confirmada, que genera una instantánea del nivel de instrucciones mediante las versiones de las filas. SQL Server Database Engine (Motor de base de datos de SQL Server) también contiene un nuevo nivel de aislamiento de transacción, la instantánea, que genera una instantánea del nivel de transacciones también mediante el control de versiones de filas.
El aislamiento de lectura confirmada mediante las versiones de filas se habilita al configurar la opción de base de datos READ_COMMITTED_SNAPSHOT en ON. Para habilitar el aislamiento de instantáneas, configure la opción de base de datos ALLOW_SNAPSHOT_ISOLATION en ON. Cuando una de las dos opciones está habilitada para una base de datos, el Motor de base de datos mantiene versiones de todas las filas que se modifican. Cada vez que una transacción modifica una fila, se copia una imagen de la fila anterior a su modificación en una página del almacén de versiones. El almacén de versiones es una colección de páginas de datos en tempdb. Si son varias las transacciones que modifican una fila, se enlazarán varias versiones de la fila en una cadena de versiones. Las operaciones de lectura realizadas por una transacción de instantánea recuperan la versión más reciente de cada fila confirmada en el momento en el que empezó la transacción de instantánea.
Las aplicaciones escritas de SQL Server 2000 o las nuevas de SQL Server implementan el aislamiento de lectura confirmada mediante el control de versiones de filas y la especificación del nivel de aislamiento de transacción de lectura confirmada cuando la opción de base de datos READ_COMMITTED_SNAPSHOT se establece en ON. Todas las operaciones de lectura muestran las versiones de filas confirmadas en el momento de iniciarse una instrucción. De este modo se genera una instantánea del nivel de instrucciones de los datos.
Las aplicaciones escritas de SQL Server implementan el aislamiento de instantánea especificando el nivel de aislamiento de transacción de instantánea cuando el valor de la opción de base de datos ALLOW_SNAPSHOT_ISOLATION es ON. Todas las operaciones de lectura de una transacción de instantánea muestran las versiones de filas confirmadas en el momento de iniciarse la transacción. De este modo se genera una instantánea del nivel de transacciones de los datos.
Para las transacciones que utilizan un nivel de aislamiento basado en el control de versiones de filas, las operaciones de lectura no solicitan bloqueos compartidos de los datos. Esto significa que los lectores que utilicen el control de versiones de filas no bloquean el acceso de otros lectores o escritores a los mismos datos. Asimismo, los escritores tampoco bloquean a los lectores. Sin embargo, los escritores se bloquean entre sí, incluso si se ejecutan en niveles de aislamiento basado en el control de versiones de filas. Dos operaciones de escritura no pueden modificar los mismos datos a la vez.
En la siguiente tabla se indican los temas en los que encontrará más información sobre los niveles de aislamiento basado en el control de versiones de filas.
Tema |
Descripción |
---|---|
Descripción de los niveles de aislamiento basado en el control de versiones de filas |
Describe los conceptos relativos al control de versiones de filas. |
Elegir niveles de aislamiento basado en el control de versión de filas |
Describe las ventajas y desventajas del control de versiones de filas e incluye recomendaciones para los escenarios más adecuados para el control de versiones de filas. |
Habilitar niveles de aislamiento basado en el control de versiones de filas |
Describe las opciones que permiten establecer el control de versiones de filas en una base de datos. |
Describe las limitaciones que presentan los niveles de aislamiento basado en el control de versiones de filas. |
|
Describe el impacto que causa en el sistema el control de versiones de filas y aborda las vistas de administración dinámica (DMV) y los contadores de rendimiento que devuelven información sobre el estado del control de versiones de filas en bases de datos y transacciones. |