Aggiornato il 23 aprile 2015
L'anno scorso ho messo insieme una serie di post volti a dare uno sguardo dettagliato alla concorrenza, alle proprietà ACID di istruzioni e transazioni e ciascuno dei principali livelli di isolamento in SQL Server. Ora ho concluso la serie con un post finale sul livello di isolamento probabilmente più comune utilizzato intenzionalmente:read uncommitted ("NOLOCK").
Le proprietà ACID di dichiarazioni e transazioni |
Il livello di isolamento serializzabile |
Il livello di isolamento in lettura ripetibile |
Il livello di isolamento di Read Committed |
Leggi l'isolamento dello snapshot impegnato |
Modifiche ai dati in isolamento di istantanee confermate in lettura |
Il livello di isolamento SNAPSHOT |
Il livello di isolamento della lettura senza commit |
Dato che sei stato paziente per l'ultima puntata, c'è qualche altra lettura / visione di background su lettura non impegnata che posso offrire:
- Lubor Kollar:le righe precedentemente impegnate potrebbero essere perse se viene utilizzato l'hint NOLOCK
- Aaron Bertrand:Cattive abitudini:mettere NOLOCK ovunque
- Craig Freedman:query fallita con lettura non vincolata
- Aaron Bertrand:evita di utilizzare NOLOCK sulle istruzioni UPDATE e DELETE di SQL Server
- David Lean:suggerimento per SQL Server NOLOCK e altre pessime idee
- Sunil Agarwal:serie Concurrency:perché ottengo il blocco quando utilizzo il livello di isolamento Read Uncommitted o utilizzo il suggerimento NOLOCK?
- Tony Rogerson:Timebomb – Il problema della coerenza con NOLOCK / READ UNCOMMITTED (e un seguito)