Granularidad y jerarquías de bloqueo
El Microsoft SQL Server Database Engine (Motor de base de datos de SQL Server) admite bloqueo multigranular. Esta función permite que una transacción bloquee diferentes tipos de recursos. Para minimizar el costo del bloqueo, Database Engine (Motor de base de datos) bloquea automáticamente los recursos en el nivel apropiado para la tarea. Los bloqueos de menor granularidad, como es el caso de las filas, aumentan la simultaneidad. Sin embargo, se produce una sobrecarga mayor porque cuantas más filas se bloquean, más bloqueos se deben mantener. Los bloqueos realizados en una granularidad alta, por ejemplo en tablas, reducen la simultaneidad porque el bloqueo de toda una tabla restringe el acceso de otras transacciones a cualquier parte de la tabla. Sin embargo, produce una sobrecarga menor debido a que se mantienen menos bloqueos.
El Database Engine (Motor de base de datos) a menudo se ve en la obligación de adquirir bloqueos en distintos niveles de granularidad para brindar una protección completa a un recurso. Este grupo de bloqueos en distintos niveles de granularidad se denomina jerarquía de bloqueos. Por ejemplo, para brindar protección completa a la lectura de un índice, probablemente sea necesario que una instancia del Database Engine (Motor de base de datos) adquiera bloqueos compartidos en filas y bloqueos con intención compartida en las páginas y la tabla.
En la siguiente tabla se muestran los recursos que el Database Engine (Motor de base de datos) puede bloquear.
Recurso | Descripción |
---|---|
RID |
Identificador de fila que se utiliza para bloquear una sola fila de un montón. |
KEY |
Bloqueo de fila dentro de un índice que se utiliza para proteger intervalos de claves en transacciones serializables. |
PAGE |
Página de 8 kilobytes (KB) de una base de datos, como páginas de datos o de índices. |
EXTENT |
Grupo contiguo de ocho páginas, como páginas de datos o de índices. |
HOBT |
Montón o árbol b. Bloqueo que protege un índice o el montón de páginas de datos en una tabla que no contiene un índice agrupado. |
TABLE |
Tabla completa, con todos los datos e índices. |
FILE |
Archivos de la base de datos. |
APPLICATION |
Recurso especificado por la aplicación. |
METADATA |
Bloqueos de metadatos. |
ALLOCATION_UNIT |
Unidad de asignación. |
DATABASE |
Base de datos completa. |
Vea también
Conceptos
Modos de bloqueo
Compatibilidad de bloqueos (motor de base de datos)