Zaktualizowano 23 kwietnia 2015 r.
W zeszłym roku zebrałem szereg postów, których celem było szczegółowe przyjrzenie się współbieżności, właściwościom ACID wyciągów i transakcji oraz każdemu z głównych poziomów izolacji w SQL Server. Teraz zakończyłem serię ostatnim postem na temat prawdopodobnie najczęstszego celowo używanego poziomu izolacji:przeczytaj bez zobowiązań ("NOLOCK").
Właściwości ACID wyciągów i transakcji |
Serializowalny poziom izolacji |
Poziom izolacji powtarzalnego odczytu |
Odczyt zatwierdzonego poziomu izolacji |
Przeczytaj izolację zatwierdzonej migawki |
Modyfikacje danych w ramach izolacji zatwierdzonej migawki odczytu |
Poziom izolacji SNAPSHOT |
Odczyt niezatwierdzony poziom izolacji |
Ponieważ uzbroiłeś się w cierpliwość do ostatniej części, mogę zaoferować inne czytanie/oglądanie w tle podczas czytania:
- Lubor Kollar:poprzednio zatwierdzone wiersze mogą zostać pominięte, jeśli zostanie użyta wskazówka NOLOCK
- Aaron Bertrand:Złe nawyki:Umieszczenie NOLOCK wszędzie
- Craig Freedman:Niepowodzenie zapytania z niezatwierdzonym odczytem
- Aaron Bertrand:Unikaj używania NOLOCK w instrukcjach SQL Server UPDATE i DELETE
- David Lean:SQL Server NOLOCK Wskazówka i inne słabe pomysły
- Sunil Agarwal:Seria współbieżności:Dlaczego otrzymuję blokowanie, gdy używam poziomu izolacji Odczyt niezatwierdzony lub używam wskazówki NOLOCK?
- Tony Rogerson:Timebomb – problem ze spójnością z NOLOCK / READ UNCOMMITTED (i kontynuacja)