Compartir a través de


Conceptos básicos de los bloqueos

Para poder comprender los bloqueos en Microsoft SQL Server Compact 4.0, debe estar familiarizado con los recursos que se pueden bloquear y los diferentes modos disponibles para bloquear los recursos.

Granularidad de los bloqueos

La granularidad de los bloqueos se refiere al nivel en el que los bloqueos tienen lugar:

  • Fila

  • Tabla

  • Página

  • Base de datos

Los bloqueos realizados en una granularidad baja, por ejemplo en una fila, aumentan la simultaneidad, pero se deben mantener más bloqueos si se bloquea un gran número de filas. Los bloqueos realizados en una granularidad alta, por ejemplo en una tabla, reducen la simultaneidad porque el bloqueo de toda una tabla restringe el acceso de otras transacciones a cualquier parte de la tabla. Sin embargo, en los bloqueos de tablas no es necesario mantener tantos bloqueos.

De forma predeterminada, SQL Server Compact 4.0 utiliza un bloqueo de filas para las páginas de datos y un bloqueo de páginas para las páginas de índice.

En la siguiente tabla se muestran los recursos que SQL Server Compact 4.0 puede bloquear.

Bloqueos

Descripción

RID

Identificador de fila. Se utiliza para bloquear una sola fila de la tabla.

PAG

Página de datos o página de índice.

TAB

Toda la tabla, incluidos todos los datos e índices

MD

Metadatos de la tabla. Se utiliza para proteger el esquema de tablas

DB

Base de datos

Modos de bloqueo

Los modos de bloqueo determinan el modo en que las transacciones simultáneas pueden obtener acceso a los datos. SQL Server Compact 4.0 determina qué modo de bloqueo se va a utilizar en función de los recursos que deben bloquearse y las operaciones que han de realizarse.

En la siguiente tabla se describen los modos de bloqueo compatibles con SQL Server Compact 4.0.

Modo de bloqueo

Descripción

Compartido (S)

Protege un recurso del acceso de lectura. Ninguna otra transacción podrá modificar los datos mientras el bloqueo compartido (S) exista en el recurso.

Exclusivo (X)

Indica una modificación de datos, como pueda ser una inserción, una actualización o una eliminación. Garantiza que no pueden aplicarse varias actualizaciones simultáneamente en el mismo recurso.

Actualizar (U)

Impide que se produzca un tipo común de interbloqueo. Solamente una transacción a la vez puede obtener un bloqueo U en un recurso. Si la transacción modifica el recurso, el bloqueo U se convierte en un bloqueo X.

Esquema

Se utiliza cuando se está ejecutando una operación que depende del esquema de una tabla. Los tipos de bloqueo de esquema son la modificación de esquema (Sch-M) y la estabilidad de esquema (Sch-S).

Intención

Establece una jerarquía de bloqueos. Los tipos más comunes de bloqueos de intención son IS, IU e IX. Estos bloqueos indican que una transacción opera sobre algunos recursos inferiores de la jerarquía, pero no en todos. Los recursos de nivel inferior tendrán un bloqueo S, U o X.

Importante

En el caso del nivel de aislamiento predeterminado de lectura confirmada (Read Committed), una instrucción SELECT de SQL Server Compact 4.0 no necesita utilizar bloqueos S para leer los datos. Aunque esto sí es necesario en MicrosoftSQL Server, SQL Server Compact 4.0 no necesita el bloqueo S para aplicar el nivel de lectura confirmada. El único bloqueo necesario para una instrucción SELECT es Sch-S, que protege el esquema mientras se ejecuta la operación. Como resultado, las instrucciones SELECT tienen un grado elevado de simultaneidad. Para obtener más información, vea Nivel de aislamiento de transacción.

Vea también

Conceptos

Bloquear (SQL Server Compact)

Descripción de bloqueos

Personalizar los bloqueos