Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Livelli di isolamento di SQL Server:serie A

Credito fotografico:Alexander Baxevanis

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)