Conceptos básicos de los bloqueos
Para poder comprender los bloqueos en Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5), 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 3.5 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 3.5 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 3.5 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 3.5.
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 3.5 no necesita utilizar bloqueos S para leer los datos. Aunque esto sí es necesario en Microsoft SQL Server, SQL Server Compact 3.5 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