Oracle - En markörs livscykel
Intro
En bra kunskap om livscykeln och funktionen av cursorer gör att du kan optimera applikationer som kör SQL-frågor.
Observera att : "En markör är ett förfarande som gör att du kan tilldela ett namn till ett" SELECT-meddelande "och mata in informationen i SQL-satsen"
Komma igång
Stegen i utförandet av en markör är:
- Öppna en markör: Minneset är allokerat för markören i det privata minnet av serverprocessen (på serverns sida) som är associerad med sessionen (UGA User Global Area). Observera att ingen SQL-fråga är associerad med markören för nu.
- Markörsbanan: En SQL-fråga är associerad med den. Representationen av rutten för begäran, inklusive dess genomförandeplan, som beskriver hur SQL-motorn kör SQL-satsen laddas i delad pool i bibliotekets cache . Strukturen i UGA är uppdaterad för att lagra en pekare till det område som är associerat med markören i bibliotekets cache.
- Definition av utgångsvariabler: SQL-frågan returnerar data, så variablerna som är relaterade till måste definieras. Den här definitionen är också nödvändig för DELETE, INSERT och UPDATE-förfrågningar (med hjälp av RETURNING-klausulen).
- Länka ingångsvariabler: Om SQL-frågan använder variabler måste de tillhandahållas. Ingen kontroll görs på länken. Om felaktiga värden överförs, utlöses ett runtime-fel.
- Utförande av markören: I detta skede körs SQL. Beroende på databasmotorn kan fasen för det faktiska genomförandet skjutas upp vid tidpunkten för hämtningen.
- Hämta markör (återhämtning av innehåll): Om SQL-frågan returnerar ett resultat återställs det. I allmänhet är det på detta stadium att behandling sker.
- Stängning av markören : Markören associerad med resurserna vid UGA släpps automatiskt. Markören i bibliotekets cache raderas inte som svar på möjliga framtida användningar.