Uppdaterad 23 april 2015
Förra året satte jag ihop en rad inlägg som syftade till att ta en detaljerad titt på samtidighet, ACID-egenskaperna för uttalanden och transaktioner och var och en av de stora isoleringsnivåerna i SQL Server. Nu har jag avslutat serien med ett sista inlägg på den förmodligen vanligaste avsiktligt använda isoleringsnivån:läs oengagerad ("NOLOCK").
ACID-egenskaperna för uttalanden och transaktioner |
Den serialiserbara isoleringsnivån |
Den repeterbara läsisoleringsnivån |
Läs engagerad isoleringsnivå |
Läs isolering av engagerad ögonblicksbild |
Dataändringar under Läs bestyrkt ögonblicksbildsisolering |
SNAPSHOT-isoleringsnivån |
Läs oengagerad isoleringsnivå |
Eftersom du har haft tålamod för den sista delen, finns det lite annan bakgrundsläsning/tittande på read uncommitted som jag kan erbjuda:
- Lubor Kollar :Tidigare beskrivna rader kan missas om NOLOCK-tips används
- Aaron Bertrand:Dåliga vanor:Att sätta NOLOCK överallt
- Craig Freedman:Frågefel med läsning oengagerad
- Aaron Bertrand:Undvik att använda NOLOCK på SQL Server UPDATE och DELETE-satser
- David Lean:SQL Server NOLOCK-tips och andra dåliga idéer
- Sunil Agarwal :Concurrency Series:Varför blockeras jag när jag använder isoleringsnivån Läs oengagerad eller använder NOLOCK-tips?
- Tony Rogerson:Tidsbomb – The Consistency Problem with NOLOCK / READ OCMITTED (och en uppföljning)