Junior — Middle
Qual è l'obiettivo di utilizzare il livello di isolamento delle transazioni Repeatable Read nei sistemi di gestione di database?
sobes.tech AI
Risposta dell'AI
Il livello di isolamento delle transazioni Repeatable Read è progettato per prevenire il fenomeno della lettura non ripetibile (non-repeatable read). Ciò significa che, all'interno di una stessa transazione, la rilettura degli stessi dati non cambierà, anche se altre transazioni tentano di aggiornarli.
Obiettivi:
- Garantire che i dati letti all'inizio della transazione rimangano invariati fino alla sua conclusione.
- Prevenire situazioni in cui una transazione vede valori diversi per gli stessi record durante letture ripetute.
Tuttavia, con Repeatable Read, possono verificarsi letture fantasma (phantom reads), quando nuove righe che soddisfano la condizione della query appaiono come risultato di altre transazioni.
In C# e .NET, il livello Repeatable Read può essere impostato durante l'uso delle transazioni tramite TransactionScope o SqlTransaction.