Utilizzo di blocchi e controllo delle versioni delle righe
Per garantire l'integrità delle transazioni e mantenere la consistenza dei database se più utenti accedono simultaneamente ai dati, nel Motore di database di SQL Server vengono utilizzati i meccanismi seguenti:
Utilizzo di blocchi
Ogni transazione richiede blocchi di diversi tipi sulle risorse, ad esempio sulle righe, le pagine o le tabelle dalle quali è dipendente. I blocchi impediscono alle altre transazioni di modificare le risorse in modo tale da creare problemi alla transazione che richiede il blocco. Ogni transazione libera i relativi blocchi quando non è più dipendente dalle risorse bloccate.
Controllo delle versioni delle righe
Se viene attivato un livello di isolamento basato sul controllo delle versioni delle righe, Motore di database mantiene le versioni di ogni riga modificata. Anziché proteggere tutte le operazioni di lettura con blocchi, nelle applicazioni è possibile specificare che una transazione utilizza le versioni di riga per visualizzare la versione dei dati esistente all'inizio della transazione o della query. Se si utilizza il controllo delle versioni delle righe, le possibilità che un'operazione di lettura possa bloccare altre transazioni vengono ridotte al minimo.
L'utilizzo di blocchi e il controllo delle versioni delle righe impediscono agli utenti di leggere dati di cui non è stato eseguito il commit e di modificare simultaneamente gli stessi dati. Se non si utilizzano queste funzionalità, è possibile che le query eseguite sui dati generino risultati imprevisti, restituendo dati di cui non è ancora stato eseguito il commit nel database.
Nelle applicazioni è possibile scegliere il livello di isolamento delle transazioni, ovvero il livello di protezione delle transazioni dalle modifiche eseguite da altre transazioni. Per personalizzare ulteriormente il funzionamento in base ai requisiti specifici di un'applicazione, è possibile specificare hint a livello di tabella per le singole istruzioni Transact-SQL.
Gli utenti possono controllare l'implementazione del controllo delle versioni delle righe tramite l'attivazione o la disattivazione delle opzioni del database. Per ulteriori informazioni, vedere Abilitazione dei livelli di isolamento basati sul controllo delle versioni delle righe e Utilizzo di livelli di isolamento basati sul controllo delle versioni delle righe.
Vedere anche