Oracle - De levenscyclus van een cursor

Intro

Een goede kennis van de levenscyclus en het functioneren van cursors stelt u in staat om toepassingen met SQL-query's te optimaliseren.

Merk op dat : "Een cursor is een procedure waarmee u een naam aan een" SELECT-instructie "kunt toewijzen en de informatie in de SQL-instructie kunt wijzigen"

Ermee beginnen

De stappen bij het uitvoeren van een cursor zijn:

  • Een cursor openen: geheugen wordt toegewezen aan de cursor in het persoonlijke geheugen van het serverproces (aan de serverzijde) dat aan de sessie is gekoppeld (UGA User Global Area). Merk op dat er voorlopig geen SQL-query aan de cursor is gekoppeld.
  • Cursorpad: er is een SQL-query aan gekoppeld. De weergave van de route van het verzoek, inclusief het implementatieplan, dat beschrijft hoe de SQL-engine de SQL-instructie uitvoert, wordt geladen in de gedeelde pool in de bibliotheekcache . De structuur in de UGA wordt bijgewerkt om een ​​aanwijzer op te slaan naar het gebied dat is gekoppeld aan de cursor in de bibliotheekcache.
  • Definitie van uitvoervariabelen: de SQL-query retourneert gegevens, dus de variabelen die betrekking hebben op de moeten worden gedefinieerd. Deze definitie is ook vereist voor verzoeken DELETE, INSERT en UPDATE (met behulp van de clausule RETURNING).
  • Invoervariabelen koppelen: als de SQL-query variabelen gebruikt, moeten deze worden opgegeven. Er wordt geen verificatie uitgevoerd via de link. Als ongeldige waarden worden doorgegeven, wordt een runtime-fout geactiveerd.
  • Uitvoering van de cursor: in dit stadium wordt de SQL uitgevoerd. Afhankelijk van de database-engine kan de fase van daadwerkelijke implementatie worden uitgesteld op het moment van ophalen.
  • Cursor ophalen (herstel van inhoud): als de SQL-query een resultaat oplevert, wordt deze hersteld. In het algemeen is het in dit stadium dat de behandeling plaatsvindt.
  • De cursor sluiten : de cursor die is gekoppeld aan de bronnen op de UGA wordt automatisch vrijgegeven. De cursor in de bibliotheekcache wordt niet verwijderd als reactie op mogelijk toekomstig gebruik.
Vorige Artikel Volgende Artikel

Top Tips