¿Cuándo adquiere SQL Server bloqueos?


10

La lista de niveles de aislamiento en SQL Server que se encuentra aquí indica que los bloqueos de escritura adquiridos dentro de una transacción se conservan hasta el final de la transacción. Sin embargo, no menciona nada sobre cuándo se adquieren estos bloqueos.

¿Los bloqueos se adquieren por defecto al comienzo de una transacción, o justo cuando se necesitan? Si esto último es cierto, ¿sería ventajoso en grandes transacciones realizar operaciones de escritura lo más tarde posible para minimizar la cantidad de tiempo que se mantienen los bloqueos X?

Respuestas:


5

¿Los bloqueos se adquieren por defecto al comienzo de una transacción, o justo cuando se necesitan?

Los bloqueos se adquieren inmediatamente antes de que ocurra la lectura o la escritura. Dependiendo de la granularidad de bloqueo seleccionada por el motor de almacenamiento, los bloqueos se pueden adquirir a nivel de fila, página, partición u objeto (tabla).

Si esto último es cierto, ¿sería ventajoso en grandes transacciones realizar operaciones de escritura lo más tarde posible para minimizar la cantidad de tiempo que se mantienen los bloqueos X?

Sí, podría ser ventajoso para la simultaneidad, dependiendo del nivel de aislamiento utilizado por las transacciones concurrentes.

Lectura relacionada:

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.