Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dlaczego w Oracle SQL usunięte (niezatwierdzone) wiersze nie są widoczne w bieżącej sesji, ale widoczne w innych sesjach?

Oraz omówienie właściwości ACID, do których ziesemer polecił cię, powinieneś wiedzieć o Kontroli współbieżności wielu wersji lub MVCC. Jeśli chcesz wiedzieć „wszystko o tym”, rozważ przeczytanie Kontrola współbieżności i odzyskiwanie w systemach baz danych Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (dostępny do pobrania).

W Oracle i innych podobnych MVCC DBMS, kiedy rozpoczynasz transakcję, przechowywana jest notatka ze znacznikiem czasu, który identyfikuje ten czas rozpoczęcia (ale wartość znacznika czasu niekoniecznie jest prostą „sekundą od wartości epoki Uniksa”). Gdy transakcja jest uruchomiona, nie zobaczy żadnych danych wstawionych ze znacznikiem czasu po jej rozpoczęciu. System przechowuje poprzednie wersje stron danych dostępne dla transakcji, które nadal są uruchomione. Gdy transakcja zapisuje stronę, tworzy nową kopię z nowym znacznikiem czasu, ale ta kopia nie jest udostępniana innym transakcjom, dopóki transakcja modyfikująca nie zostanie zatwierdzona, a nawet wtedy jest udostępniana tylko transakcjom rozpoczynającym się po zatwierdzeniu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zagnieżdżone łączenie pętli w Oracle 11g

  2. Oracle odejmowanie dni i minut

  3. Dostrajanie instrukcji SQL w programie SQL Developer

  4. Oracle sql — odejmowanie daty w funkcji

  5. Problem z obliczaniem tygodnia Oracle