* Blocco a livello di tabella: Questo è il server SQL più vicino arriva a un "blocco della scheda". In alcune situazioni, SQL Server potrebbe acquisire un blocco condiviso o esclusivo (x) a livello di tabella. Ciò significa che l'intera tabella è bloccata, impedendo a qualsiasi altra operazione simultanea di modificare o persino leggere (a seconda del tipo di blocco) la tabella fino al rilascio del blocco. Ciò accade spesso con domande scarsamente progettate o con alta contesa. Non è un'impostazione deliberata che scegli; È una conseguenza del piano di accesso della query e del livello di isolamento scelto.
* Minteading del blocco a livello di riga: SQL Server utilizza principalmente il blocco a livello di riga. Ciò significa che solo le righe specifiche da modificare sono bloccate, consentendo ad altri utenti di accedere e modificare contemporaneamente altre righe nella stessa tabella. Tuttavia, se molte righe vengono aggiornate contemporaneamente, il sistema potrebbe comunque sperimentare il degrado delle prestazioni anche se non è un "blocco della scheda" completo.
* blocchi di modifica dello schema: Quando si altera la struttura di una tabella (aggiunta, modifica o eliminazione di colonne, aggiungendo indici, ecc.), SQL Server posiziona i blocchi per evitare la modifica simultanea dello schema della tabella. Questi sono implicitamente applicati e in genere sono di breve durata.
Perché raramente vedi "blocchi di scheda" reali in un moderno ambiente SQL Server:
* Implicazioni sulle prestazioni: I blocchi a livello di tabella limitano gravemente la concorrenza e possono portare a colli di bottiglia di prestazioni significative. Sono altamente indesiderabili nella maggior parte degli scenari.
* Ottimizzazione di bloccaggio a livello di riga: L'ottimizzatore query di SQL Server si impegna a utilizzare il blocco a livello di riga quando possibile per massimizzare la concorrenza.
* Livelli di isolamento: Il livello di isolamento scelto (leggi non impegnati, lettura commessa, lettura ripetibile, serializzabile) influenza il modo in cui le serrature vengono acquisite e tenute, influenzando ulteriormente la probabilità del blocco a livello di tavolo.
In sintesi: Mentre il termine "blocco della scheda" non è tecnicamente accurato per SQL Server, viene utilizzato in modo informale per descrivere situazioni in cui l'intera tabella è bloccata a causa dell'esecuzione delle query o delle modifiche dello schema. Questo è di solito un sintomo di un problema piuttosto che di una caratteristica intenzionale. Se stai riscontrando problemi di prestazioni che appaiono come un "blocco della scheda", indagare le query, l'indicizzazione e i livelli di isolamento per comprendere e ottimizzare il modello di concorrenza del tuo database. L'analisi del blocco attende utilizzando strumenti come il profiler `sp_whoisactive` o SQL Server aiuterà a diagnosticare la causa principale.
software © www.354353.com