december 13, 2021

het Geek dagboek

het volgende voorbeeld beschrijft Oracle database operaties op het meest elementaire niveau. Het illustreert een Oracle-databaseconfiguratie waarin de gebruiker en het bijbehorende serverproces zich op afzonderlijke computers bevinden, die via een netwerk zijn verbonden.

hoe SQL-query wordt uitgevoerd in Oracle-database

1. Een instantie is gestart op een knooppunt waar Oracle-Database is geïnstalleerd, vaak de host of databaseserver genoemd.

2. Een gebruiker start een toepassing die een gebruikersproces voortbrengt. De toepassing probeert een verbinding met de server tot stand te brengen. (De verbinding kan lokaal, client / server, of een drie-tier verbinding van een middelste tier.)

3. De server draait een listener die de juiste handler voor Oracle Net Services heeft. De luisteraar detecteert de verbindingsaanvraag vanuit de toepassing en maakt namens het gebruikersproces een dedicated serverproces.

4. De gebruiker voert een DML-type SQL statement uit en commit de transactie. Bijvoorbeeld, de gebruiker verandert het adres van een klant in een tabel en commit de wijziging.

5. Het serverproces ontvangt het statement en controleert de gedeelde pool (een SGA-component) voor elk gedeeld SQL-gebied dat een identieke SQL-statement bevat. Als een gedeeld SQL-gebied wordt gevonden, controleert het serverproces de toegangsrechten van de gebruiker tot de door de gebruiker gevraagde gegevens en wordt het bestaande gedeelde SQL-gebied gebruikt om het statement te verwerken. Als een gedeeld SQL-gebied niet wordt gevonden, wordt een nieuw gedeeld SQL-gebied toegewezen voor het statement, zodat het kan worden ontleed en verwerkt.

6. Het serverproces haalt alle benodigde gegevenswaarden op, hetzij uit het feitelijke gegevensbestand (tabel) of uit waarden die zijn opgeslagen in de buffercache van de database.

7. Het serverproces wijzigt gegevens in de SGA. Omdat de transactie wordt vastgelegd, registreert het Log Writer process (Lgwr) de transactie onmiddellijk in het logboekbestand redo. Het Database Writer process (DBWn) schrijft gewijzigde blokken permanent naar de schijf wanneer het efficiënt is om dit te doen.

8. Als de transactie succesvol is, stuurt het serverproces een bericht over het netwerk naar de toepassing. Als het niet lukt, wordt een foutmelding verzonden.

9. Gedurende deze hele procedure, de andere achtergrond processen lopen, kijken naar omstandigheden die interventie vereisen. Bovendien beheert de databaseserver de transacties van andere gebruikers en voorkomt het twist tussen transacties waarbij dezelfde gegevens worden aangevraagd.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.