Jak zapytanie SQL jest wykonywane w Oracle Database

  • Matthew Stevenson
  • 0
  • 3873
  • 71

Poniższy przykład opisuje operacje bazy danych Oracle na najbardziej podstawowym poziomie. Przedstawia konfigurację bazy danych Oracle, w której proces użytkownika i skojarzonego z nim serwera znajdują się na osobnych komputerach połączonych siecią.

1. Instancja została uruchomiona w węźle, w którym jest zainstalowana baza danych Oracle, nazywanym często hostem lub serwerem bazy danych.

2. Użytkownik uruchamia aplikację, tworząc proces użytkownika. Aplikacja próbuje nawiązać połączenie z serwerem. (Połączenie może być lokalne, klient / serwer lub trójwarstwowe połączenie z warstwy środkowej).

3. Serwer uruchamia nasłuchiwanie, które ma odpowiednią procedurę obsługi Oracle Net Services. Odbiornik wykrywa żądanie połączenia z aplikacji i tworzy proces serwera dedykowanego w imieniu procesu użytkownika.

4. Użytkownik wykonuje instrukcję SQL typu DML i zatwierdza transakcję. Na przykład użytkownik zmienia adres klienta w tabeli i zatwierdza zmianę.

5. Proces serwera odbiera instrukcję i sprawdza współużytkowaną pulę (komponent SGA) pod kątem dowolnego współużytkowanego obszaru SQL, który zawiera identyczną instrukcję SQL. Jeśli zostanie znaleziony współużytkowany obszar SQL, proces serwera sprawdza uprawnienia dostępu użytkownika do żądanych przez niego danych, a istniejący współużytkowany obszar SQL jest używany do przetwarzania instrukcji. Jeśli nie zostanie znaleziony współużytkowany obszar SQL, dla instrukcji przydzielany jest nowy współużytkowany obszar SQL, aby można go było przeanalizować i przetworzyć.

6. Proces serwera pobiera wszelkie niezbędne wartości danych z rzeczywistego pliku danych (tabeli) lub z wartości przechowywanych w buforze bufora bazy danych.

7. Proces serwera modyfikuje dane w SGA. Ponieważ transakcja została zatwierdzona, proces zapisywania dziennika (LGWR) natychmiast rejestruje transakcję w pliku dziennika powtórzeń. Proces zapisywania bazy danych (DBWn) zapisuje zmodyfikowane bloki na stałe na dysku, jeśli jest to efektywne.

8. Jeśli transakcja się powiedzie, proces serwera wysyła komunikat przez sieć do aplikacji. Jeśli się nie powiedzie, zostanie przesłany komunikat o błędzie.

9. Przez całą tę procedurę działają inne procesy w tle, wypatrując warunków wymagających interwencji. Ponadto serwer bazy danych zarządza transakcjami innych użytkowników i zapobiega rywalizacji między transakcjami, które żądają tych samych danych.




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux