DB2 Universal Database - Systemverwaltung


Gespeicherte Prozeduren

In der Umgebung einer Datenbankanwendung wiederholen sich zahlreiche Situationen routinemäßig. Beispiele sind der Empfang einer festen Menge von Daten, Durchführung derselben Folge von Anforderungen für eine Datenbank oder das Zurückgeben einer festen Menge von Daten. Gespeicherte Prozeduren erlauben die Ausführung einer vorprogrammierten Prozedur durch einen einmaligen Aufruf an eine ferne Datenbank. Innerhalb dieses einen Aufrufs können mehrere Zugriffe auf die Datenbank durchgeführt werden.

Für die Verarbeitung einer einzigen SQL-Anweisung für eine ferne Datenbank sind zwei Übertragungen erforderlich: eine Anforderungsübertragung und eine Empfangsübertragung. Jedoch kann eine Anwendung zahlreiche SQL-Anweisungen enthalten. Ohne die gespeicherten Prozeduren wären viele Übertragungsoperationen für die Durchführung der Arbeit einer einzigen Anwendung erforderlich.

Wenn ein Datenbank-Client eine gespeicherte Prozedur verwendet, sind für den gesamten Prozeß lediglich zwei Übertragungen erforderlich, wodurch die Anzahl der Übertragungen im Netzwerk verringert wird. Um eine gespeicherte Prozedur aufrufen zu können, muß die anfordernde Anwendung vor dem Aufruf die Verbindung zu der Datenbank herstellen, in der die Prozedur gespeichert ist.

In der Regel werden diese gespeicherten Prozeduren in Prozessen ausgeführt, die von den Datenbankagenten getrennt sind. Diese Trennung macht es erforderlich, daß die Prozesse der gespeicherten Prozeduren und die Agentenprozesse über einen Router miteinander kommunizieren. Um die höchstmögliche Leistung für eine gespeicherte Prozedur zu erzielen, können Sie eine gespeicherte Prozedur als "akzeptiert" oder "nicht abgeschirmt" identifizieren und so die Prozedur direkt im Prozeß des Datenbankagenten ausführen. Was ist mit den Begriffen "akzeptiert" und "nicht abgeschirmt" bei gespeicherten Prozeduren gemeint?

Beide Begriffe bedeuten dasselbe, d. h., wenn Ihre gespeicherte Prozedur "nicht abgeschirmt" wird, dann wird ihre gespeicherte Prozedur "akzeptiert". Aufgrund des vorhandenen Risikos einer Datenbankbeschädigung sollten Sie nicht abgeschirmte gespeicherte Prozeduren nur dann ausführen, wenn maximale Leistungsanforderungen unabdingbar sind. Darüber hinaus müssen Sie sich vergewissern, daß die Prozedur einwandfrei codiert ist und gründlich getestet wurde, bevor Sie sie für die Ausführung als nicht abgeschirmte gespeicherte Prozedur zulassen. Wenn es doch zu einem schwerwiegenden Fehler während der Ausführung einer dieser nicht abgeschirmten Prozeduren kommt, stellt der Datenbankmanager fest, ob der Fehler in der Anwendung oder im Code des Datenbankmanagers auftrat, und führt die entsprechenden Wiederherstellungsmaßnahmen aus.

Eine nicht abgeschirmte gespeicherte Prozedur kann den Datenbankmanager so beschädigen, daß dieser nicht wiederhergestellt werden kann. Dies kann zu Datenverlust und/oder einer beschädigten Datenbank führen. Beim Ausführen akzeptierter gespeicherter Prozeduren sollte mit großer Vorsicht vorgegangen werden. In nahezu allen Fällen führt die richtige Leistungsanalyse einer Anwendung zur gewünschten Leistung, ohne daß diese Option verwendet werden muß. Die Leistung kann beispielsweise durch die Verwendung von Auslösern verbessert werden.

Es gibt zwei Methoden, eine gespeicherte Prozedur als nicht abgeschirmte Prozedur zu erstellen:

Zur Ausführung einer gespeicherten Prozedur muß der Endbenutzer, der die Anwendung ausführt, die die Prozedur aufruft, eine der folgenden Berechtigungen zur Laufzeit haben:

Informationen zum Schreiben von Programmen, die mit gespeicherten Prozeduren arbeiten, finden Sie im Handbuch Application Development Guide.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]