Quando SQL Server acquisisce i blocchi?


10

L'elenco dei livelli di isolamento in SQL Server trovato qui indica che i blocchi di scrittura acquisiti all'interno di una transazione vengono conservati fino alla fine della transazione. Tuttavia non menziona nulla su quando vengono acquisiti questi blocchi.

I blocchi vengono acquisiti per impostazione predefinita all'inizio di una transazione o solo quando sono necessari? Se quest'ultimo è vero, sarebbe quindi vantaggioso eseguire le operazioni di scrittura nelle transazioni di grandi dimensioni il più tardi possibile al fine di ridurre al minimo il tempo di permanenza dei blocchi X?

Risposte:


5

I blocchi vengono acquisiti per impostazione predefinita all'inizio di una transazione o solo quando sono necessari?

I blocchi vengono acquisiti immediatamente prima della lettura o della scrittura. A seconda della granularità dei blocchi selezionata dal motore di archiviazione, i blocchi possono essere acquisiti a livello di riga, pagina, partizione o oggetto (tabella).

Se quest'ultimo è vero, sarebbe quindi vantaggioso eseguire le operazioni di scrittura nelle transazioni di grandi dimensioni il più tardi possibile al fine di ridurre al minimo il tempo di permanenza dei blocchi X?

Sì, potrebbe essere vantaggioso per la concorrenza, a seconda del livello di isolamento utilizzato dalle transazioni simultanee.

Lettura correlata:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.