Czy dodaję odczyt zatwierdzony po ZESTAWIE SERIALIZACJI POZIOMU ​​IZOLACJI TRANSAKCJI?


9

Wewnątrz procedury składowanej mam następujące elementy: (serwer SQL 2008)

 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
 BEGIN TRANSACTION getStuff
 BEGIN TRY 
    /*  some selects, updates, etc, etc. */
    ....
    COMMIT TRANSACTION getStuff
 END TRY
 BEGIN CATCH 
   ...
 END CATCH

Ponieważ jest to oparte na transakcjach, myślałem, że reszta połączeń z bazą danych nie będzie miała wpływu na SERIALIZABLE.

Czy muszę domyślnie ustawić poziom izolacji, aby odczytać popełnione po moim zatwierdzeniu? Czy wpłynie to niekorzystnie na inne połączenia między moim serwerem aplikacji a serwerem bazy danych?

Odpowiedzi:


6

Polecenie brzmi TRANSACTION ISOLATION LEVEL: nie SERVER ISOLATION LEVEL. Zmienia tylko poziom izolacji dla zakresu transakcji.


5

Nie, nie musisz domyślnie ustawiać poziomu izolacji z powrotem, aby zatwierdzić odczyt.

Z książek online .

Jeśli wydasz polecenie USTAW POZIOM IZOLACJI w procedurze składowanej lub wyzwalacz, gdy obiekt zwróci kontrolę, poziom izolacji zostanie zresetowany do poziomu obowiązującego w momencie wywołania obiektu. Na przykład, jeśli ustawisz REPEATABLE READ w partii, a partia następnie wywoła procedurę przechowywaną, która ustawia poziom izolacji na SERIALIZABLE, ustawienie poziomu izolacji powróci do REPEATABLE READ, gdy procedura przechowywana zwróci sterowanie do partii.


3

Wysłane polecenie uruchamia transakcję w SP za pomocą TRANSACTION ISOLATION LEVEL SERIALIZABLE. Inne połączenia będą domyślnie przywracane do domyślnego poziomu izolacji - czytaj zatwierdzone (chyba że jawnie określono inny poziom izolacji).

Istnieje doskonała seria autorstwa Paula White'a - Poziomy izolacji SQL Server: Seria, która pomoże ci zrozumieć, co oznaczają różne poziomy izolacji i jak je wykorzystać.


-3

Dość nowy algorytm, który pozwala uniknąć większości wad poprzednich podejść. Korzysta z optymistycznego podejścia, umożliwiając przeprowadzanie transakcji bez blokowania. Gdy transakcja chce zatwierdzić, jest sprawdzana i jest przerywana, jeśli wykonanie nie było możliwe do serializacji. Więcej informacji na temat wszystkich podejść na stronie : http://writeulearn.com/relational-database-transactions/


To nie wydaje się być odpowiedzią na pytanie ....
RDFozz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.