Oracle - Der Lebenszyklus eines Cursors

Intro

Wenn Sie den Lebenszyklus und die Funktionsweise von Cursorn genau kennen, können Sie Anwendungen optimieren, in denen SQL-Abfragen ausgeführt werden.

Beachten Sie Folgendes: "Ein Cursor ist eine Prozedur, mit der Sie einer" SELECT-Anweisung "einen Namen zuweisen und die Informationen in der SQL-Anweisung ergänzen können."

Fertig machen

Die Schritte bei der Ausführung eines Cursors sind:

  • Öffnen eines Cursors: Speicher wird für den Cursor im privaten Speicher des Serverprozesses (auf der Serverseite) reserviert, der der Sitzung zugeordnet ist (UGA User Global Area). Beachten Sie, dass dem Cursor derzeit keine SQL-Abfrage zugeordnet ist.
  • Cursorpfad: Eine SQL-Abfrage ist damit verbunden. Die Darstellung der Route der Anforderung, einschließlich ihres Implementierungsplans, der beschreibt, wie die SQL-Engine die SQL-Anweisung ausführt, wird in den gemeinsam genutzten Pool im Bibliothekscache geladen. Die Struktur im UGA wird aktualisiert, um einen Zeiger auf den Bereich zu speichern, der dem Cursor im Bibliotheks-Cache zugeordnet ist.
  • Definition der Ausgabevariablen: Die SQL-Abfrage gibt Daten zurück, daher müssen die Variablen definiert werden, die sich auf beziehen. Diese Definition ist auch für DELETE-, INSERT- und UPDATE-Anforderungen erforderlich (unter Verwendung der RETURNING-Klausel).
  • Eingabevariablen verknüpfen: Wenn die SQL-Abfrage Variablen verwendet, müssen diese bereitgestellt werden. Über den Link wird keine Überprüfung durchgeführt. Wenn ungültige Werte übergeben werden, wird ein Laufzeitfehler ausgelöst.
  • Ausführung des Cursors: In diesem Stadium wird die SQL ausgeführt. Abhängig von der Datenbank-Engine kann die Phase der tatsächlichen Implementierung zum Zeitpunkt des Abrufs verschoben werden.
  • Abrufcursor (Wiederherstellung von Inhalten): Wenn die SQL-Abfrage ein Ergebnis zurückgibt, wird es wiederhergestellt. Im Allgemeinen erfolgt die Behandlung in diesem Stadium.
  • Schließen des Cursors : Der den Ressourcen am UGA zugeordnete Cursor wird automatisch freigegeben. Der Cursor im Bibliothekscache wird nicht gelöscht, wenn eine spätere Verwendung möglich ist.
Vorherige Artikel Nächster Artikel

Top-Tipps