Jaki jest poziom izolacji „Chaosu” i kiedy należy go stosować?

26

Dokumentacja ADO.NET pokazuje możliwość ustawienia poziomu transakcji dla transakcji SQL na Chaos. Brzmi nieprzyjemnie, ale jeśli ta funkcja jest dostępna, prawdopodobnie ma uzasadnione zastosowanie.

Polecenie SET TRANSACTION ISOLATION LEVEL w BOL (ach, patrz, mogę używać Google i BOL) wydaje się, że nic nie nazywa się „chaos”, a ADO.NET ma 5 trybów, które ładnie pasują do udokumentowanych poziomów oprócz „chaosu”

Po co lub dla kogo jest ten poziom Chaosu? (I dlaczego ma nieprzyjazne imię?)

Odsyłacze: Wyliczenie ADO.NET

MatthewMartin
źródło

Odpowiedzi:

11

Według dokumentacji DB2 jest to dziwny poziom izolacji, w którym zmiany są zatwierdzane w bazie danych natychmiast po ich wykonaniu (aby inni mogli to zobaczyć).

Nie mówi wprost, ale o ile wiem, nie ma też wycofania. Zasadniczo oznacza to brak transakcji . „Mówisz„ transakcja ”, ale tak naprawdę mnie to nie obchodzi”. Zatem -> chaos.

W rzeczywistości na niektórych listach e-mail znalazłem, że „Chaos” faktycznie mapuje się na poziom transakcji „* NONE” w „DB2 for i”.

srdjan.veljkovic
źródło
Chaos to izolacja stopnia 0, jak wyjaśnili Reuter i Gray w swojej teorii przetwarzania transakcyjnego. Jeśli uważasz, że Read Uncommitted naprawdę wiąże się z izolacją odczytywanych danych (a nawiasem mówiąc, nie jest tym samym, co chaos). Chaos (jak każdy inny stopień izolacji) ma wiele właściwości, z których jedną z najciekawszych jest jego zdolność do naruszania stopnia 3 (powtarzalny odczyt możliwy do serializacji). Najważniejsze jest to, że Chaos powinien być używany tylko w odpowiednim kontekście (tj. Sugerowałbym działanie tylko w pełnej izolacji dla zestawów danych, które nie wymagają wycofania).
Mark Broadbent,
7

DB2 ma poziom izolacji transakcji o nazwie „Chaos”:

Właściwość DB2Connection.ConnectionString - IBM Knowledge Center

Być może jest to do tego przeznaczone. Naprawdę nie jestem pewien, ale zakładam, że oznacza to brak możliwej do zdefiniowania izolacji transakcji.

Dan Field
źródło
2
Wygląda na to, że dotyczy tylko systemu i. Czy wiesz co to znaczy? Nie mogę znaleźć wielu informacji na ten temat, nie mówi o zatwierdzeniu, więc zakładam, że oznacza to, że każde polecenie jest zatwierdzane natychmiast. Ale wydaje się to prostopadłe do poziomu izolacji, więc prawdopodobnie jest coś jeszcze
Lennart