Stored Procedures

Aus DBWiki
Wechseln zu: Navigation, Suche

Definition

Eine Stored Procedure ist ein Programm, das in den Datenbank-Metadaten zur Ausführung auf dem Server gespeichert ist. Eine Stored Procedure kann von Stored Procedures (einschließlich sich selbst), Triggern und Client-Anwendungen aufgerufen werden. Eine Prozedur, die sich selbst aufruft, wird als rekursiv bezeichnet.

Vorteile von Stored Procedures

Stored Procedures haben folgende Vorteile:

  1. Modularitätsanwendungen, die mit der Datenbank arbeiten, können dieselbe Stored Procedure verwenden, wodurch die Größe des Anwendungscodes reduziert und Code-Duplizierungen vermieden werden.
  2. Vereinfachte Anwendungsunterstützung: Wenn eine Stored Procedure geändert wird, erscheinen Änderungen sofort in allen Hostanwendungen, ohne dass sie neu kompiliert werden müssen, wenn die Parameter unverändert bleiben.
  3. Verbesserte Leistung: Da gespeicherte Prozeduren auf einem Server statt auf dem Client ausgeführt werden, wird der Netzwerkverkehr reduziert, was die Leistung verbessert.

Arten von Stored Procedures

Firebird unterstützt zwei Arten von Stored Procedures:

Ausführbare Prozeduren

Ausführbare Prozeduren modifizieren in der Regel Daten in einer Datenbank. Sie können Eingangsparameter empfangen und einen einzigen Satz von Ausgangsparametern (RETURNS) zurückgeben. Sie werden mit der Anweisung EXECUTE PROCEDURE aufgerufen.

Auswählbare Prozeduren

Auswählbare Stored Procedures rufen in der Regel Daten aus einer Datenbank ab und geben dem Aufrufer eine beliebige Anzahl von Zeilen zurück. Der Aufrufer erhält die Ausgabe zeilenweise aus einem Zeilenpuffer, den die Datenbankmaschine vorbereitet hat.

Auswählbare Prozeduren können nützlich sein, um komplexe Datensätze zu erhalten, die oft unmöglich oder zu schwierig oder zu langsam sind, um sie mit Hilfe regulärer DSQL SELECT-Abfragen abzurufen. Typischerweise durchläuft diese Art der Prozedur einen Schleifenprozess, bei dem Daten extrahiert werden, um sie möglicherweise zu transformieren, bevor die Ausgangsvariablen (Parameter) bei jeder Iteration der Schleife mit frischen Daten gefüllt werden. Eine SUSPEND-Anweisung am Ende der Iteration füllt den Puffer und wartet darauf, dass der Aufrufer die Zeile holt. Die Ausführung der nächsten Iteration der Schleife beginnt mit dem Löschen des Puffers.

Auswählbare Prozeduren können Eingabeparameter haben und der Ausgabesatz wird durch die RETURNS-Klausel im Header spezifiziert.

Eine auswählbare Stored Procedure wird mit einer SELECT-Anweisung aufgerufen.

Wiki hinweis.png Anmerkung: Frei übersetzt aus Firebird 2.5 Language Reference mit folgendem Lizenzhinweis