Aktywne Wpisy
![ponerLokej](https://wykop.pl/cdn/c3397992/ponerLokej_s4fJ8Epvxk,q60.jpg)
ponerLokej +159
Niesamowite jak świat potrafi się zawalić człowiekowi w jednej chwili (╥﹏╥)
Jeszcze miesiąc temu:
praca we #wroclaw
mieszkanie na wynajem
10 letni związek (narzeczeństwo)
perspektywy na przyszłość, poczucie bycia kochanym przez rodzinę, narzeczoną
Ostatni tydzień:
rozstanie z narzeczoną
nie chcą mi przedłużyć umowy w pracy więc zostaję do końca kwietnia,
wynajęte mieszkanie jest na mnie i dziewczynę, ale ja nie mam oszczędności, więc muszę się wynieść - brak
Jeszcze miesiąc temu:
praca we #wroclaw
mieszkanie na wynajem
10 letni związek (narzeczeństwo)
perspektywy na przyszłość, poczucie bycia kochanym przez rodzinę, narzeczoną
Ostatni tydzień:
rozstanie z narzeczoną
nie chcą mi przedłużyć umowy w pracy więc zostaję do końca kwietnia,
wynajęte mieszkanie jest na mnie i dziewczynę, ale ja nie mam oszczędności, więc muszę się wynieść - brak
![ponerLokej - Niesamowite jak świat potrafi się zawalić człowiekowi w jednej chwili (╥...](https://wykop.pl/cdn/c3201142/4ac35f83bf24c7835ff3115c896934cf6eb75cd0a9f55e116ed10f9cab5fd8f4,w150.png)
źródło: obraz_2024-04-10_220128609
PobierzZawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Hej,
Mam pewien problem ze zrozumieniem izolacji w transakcjach. Tak jak rozumiem READ COMMITED i READ-ONLY, to nie za bardzo rozumiem SERIALIZABLE.
Tutaj tak w skrócie:
READ COMMITED – (domyślny Oracle). Kwerendy w transakcji pokazują tylko zatwierdzone dane.
SERIALIZABLE – Kwerendy w transakcji pokazują tylko te zmiany w danych, które zostały zatwierdzone przed transakcją i te których dokonała sama transakcja.
READ-ONLY - najczęściej stosuje się ten poziom izolacji w systemach raportowych.
Ustawiajać poziom izolacji transakcji na READ-ONLY uzyskujemy „widok na dane” w czasie zaczęcia tranzakcji i ten widok się nie zmienia nawet jesli inna transakcja poprawnie zakończona (zatwierdzona!) zmieni te dane.
Wedle tego to jeśli mamy tabelkę A:
id Imię Nazwisko
1 Jan Nowak
2 Marian Kowalski
to mamy potem wynik z select * from A;
1 Jan Nowak
2 Marian Kowalski
No i jak włączymy transakcje tego typu:
set transaction isolation level serializable;
update A
set Imię = 'Ziutek'
where id = 1;
Bez COMMIT
czyli po transakcja działa już na danych
1 Ziutek Nowak
2 Marian Kowalski
Ale jakby ktoś inny zrobił SELECT to jest
1 Jan Nowak
2 Marian Kowalski
A potem dał INSERT, czyli miałby tabelkę
1 Jan Nowak
2 Marian Kowalski
3 Marta Nowakowska
To ja w transakcji nie widzę tego trzeciego rekordu z tego co rozumiem.
Ale daję COMMIT i teraz co ja zobaczę? Czy to:
1 Ziutek Nowak
2 Marian Kowalski
Czy to:
1 Ziutek Nowak
2 Marian Kowalski
3 Marta Nowakowska
Czy jeszcze coś innego?
Nie mam teraz jak tego sprawdzić, bo siedzę w robocie, a tu nie mam Oracla :P
No i może ja nie rozumiem tego tak do końca i transakcja to działa dalej po COMMIT? i użytkownik, który ją wywołał cały czas widzi dane sprzed transakcji i te które sam zmodyfikował?
tak