Compatibilità tra blocchi (Motore di database)
La compatibilità tra blocchi consente di stabilire se più transazioni possono acquisire blocchi sulla stessa risorsa contemporaneamente. Se una risorsa è già bloccata da un'altra transazione, è possibile autorizzare una nuova richiesta di blocco solo se la modalità di blocco richiesta è compatibile con quella esistente. In caso contrario, la transazione che richiede il nuovo blocco deve attendere il rilascio del blocco esistente oppure la scadenza dell'intervallo di timeout del blocco. Non vi sono, ad esempio, modalità di blocco compatibili con i blocchi esclusivi. In caso di presenza di un blocco esclusivo (X), nessun'altra transazione può acquisire altri blocchi di qualsiasi tipo, ovvero condivisi, di aggiornamento o esclusivi, sulla stessa risorsa fino a quando il blocco esclusivo (X) non viene rilasciato. Se invece è stato applicato a una risorsa un blocco condiviso (S), le altre transazioni possono acquisire un blocco condiviso o un blocco di aggiornamento (U) sullo stesso elemento anche prima del completamento della prima transazione. Le altre transazioni, tuttavia, possono acquisire un blocco esclusivo solo dopo il rilascio del blocco condiviso.
Nella tabella seguente viene illustrata la compatibilità delle modalità di blocco più comuni.
Modalità concessa esistente | ||||||
---|---|---|---|---|---|---|
Modalità richiesta |
IS |
S |
U |
IX |
SIX |
X |
Blocco preventivo condiviso (IS) |
Sì |
Sì |
Sì |
Sì |
Sì |
No |
Blocco condiviso (S) |
Sì |
Sì |
Sì |
No |
No |
No |
Blocco di aggiornamento (U) |
Sì |
Sì |
No |
No |
No |
No |
Blocco preventivo esclusivo (IX) |
Sì |
No |
No |
Sì |
No |
No |
Blocco condiviso preventivo esclusivo (SIX) |
Sì |
No |
No |
No |
No |
No |
Blocco esclusivo (X) |
No |
No |
No |
No |
No |
No |
[!NOTA] I blocchi preventivi esclusivi (IX) sono compatibili con la modalità di blocco IX perché tale modalità prevede l'intenzione di aggiornamento solo di alcune righe e non di tutte. Altre transazioni possono pertanto accedere alle risorse per la lettura o l'aggiornamento di alcune righe, a condizione che non utilizzino le righe già in fase di aggiornamento.
Matrice completa di compatibilità tra blocchi
Utilizzare la tabella seguente per determinare la compatibilità di tutte le modalità di blocco disponibili in Microsoft SQL Server 2005.
Vedere anche
Concetti
Granularità dei blocchi e gerarchie
Modalità blocco
Blocco di intervalli di chiavi