21. WSPÓLBIEŻNOŚĆ W SYSTEMIE ORACLE_-224-
Uwaga. Polecenie należy wykonać jako pierwsze w ramach sesji.
21.2.2. Tryb RE AD ONLY
• Transakcja T| operuje na wersji danych z momentu jej rozpoczęcia.
• Transakcja w tym trybie nie może modyfikować danych.
• Nie widzi zmian wprowadzonych w między czasie przez inne, zatwierdzone transakcje.
Tryb Read Only stosowany jest w przypadku obliczeń analitycznych.
Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Read Only:
SQL> SET TRANSACHON Read Only;
Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji.
21.2.3. Tryb SERIALIZABLE
• Transakcja w trybie Serializable, podobnie jak transakcja w trybie Read Only, operuje na wersji danych z momentu jej rozpoczęcia.
• Różnica polega na tym, że można modyfikować dane, które nie zostały zmienione przez inne transakcje w trakcie jej trwania.
Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Serializable:
SQL> SET TRANSACTION ISOLATION LEVEL Serializable;
Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji.
Polecenie umożliwiające ustawienie trybu Serializable dla wszystkich transakcji realizowanych w ramach danej sesji:
21 ■ WSPÓLBIEŻNOŚĆ W SYSTEMIE ORACLE_-225 -
ALTER SESSION SET ISOLATION_LEVEL= Serializable;
Uwaga. Polecenie należy wykonać jako pierwsze w ramach sesji.
Tryb Serializable może być włączony na stałe poprzez ustawienie w pliku parametrów Init<SID>. ora parametru SERIALIZABLE=TRUE.
Domyślnie jego wartość wynosi FALSE co oznacza, że wszystkie transakcje są realizowane w trybie Read Committed;
W systemie Oracle stosowana jest metoda blokowania.
Blokady zakładane są na czas trwania transakcji.
Dwie blokady są ze sobą zgodne jeżeli mogą być założone na tę samą daną przez wiele transakcji.
Blokowanie może dotyczyć:
• tabeli (labie lock),
• rekordu (row lock).
Blokowanie całej tabeli zmniejsza stopień współbieżności transakcji, ułatwiając zarządzanie blokadami i szybsze wykrywanie związanych z nimi konfliktów.
Blokowanie całej tabeli powoduje, że blokada dotyczy wszystkich jej rekordów a co za tym idzie system nie musi blokować każdego z nich oddzielnie.
Sposób zakładania blokad zależy od ustawienia parametrów:
SERIALIZABLE = False ROW_LOCKING = Always
Rok akademicki - 2007/2008 - Nolalki do przedmiotu ..Administracja bazami danych"