Sobald eine Anweisung an eine Datenbank gesendet wird, muss der Datenbankserver folgende Schritte ausführen:
Er muss die Anweisung syntaktisch analysieren und in eine interne Form umwandeln. Dies wird auch als Vorbereitung der Anweisung bezeichnet.
Er muss die Richtigkeit aller Referenzen auf Datenbankobjekte überprüfen, z.B. ob in der Abfrage genannte Spalten existieren.
Der Abfrageoptimierer erzeugt einen Zugriffsplan, falls die Anweisung Joins oder Unterabfragen umfasst.
Er führt die Anweisung aus, nachdem alle diese Schritte durchgeführt wurden.
Wenn Sie dieselbe Anweisung immer wieder verwenden, etwa das Einfügen von mehreren Zeilen in eine Tabelle, kommt es zu bedeutenden und unnötigen Overheads durch die wiederholte Vorbereitung der Anweisung. Um dies zu vermeiden, bieten einige Datenbank-Programmierschnittstellen eine Möglichkeit zur Verwendung von vorbereiteten Anweisungen. Eine vorbereitete Anweisung ist eine Anweisung, die eine Reihe von Platzhaltern enthält. Wenn Sie die Anweisung ausführen wollen, müssen Sie den Platzhaltern nur Werte zuweisen, anstatt die gesamte Anweisung erneut vorzubereiten.
Der Einsatz von vorbereiteten Anweisungen ist besonders dann nützlich, wenn viele ähnliche Aktionen ausgeführt werden, wie etwa das Einfügen von vielen Zeilen.
Im Allgemeinen erfordern vorbereitete Anweisungen die folgenden Schritte:
Vorbereiten der Anweisung
In diesem Schritt versehen Sie die Anweisung im Allgemeinen mit einigen Platzhalter-Zeichen anstelle von Werten.
Wiederholtes Ausführen der vorbereiteten Anweisung
In diesem Schritt liefern Sie Werte, die jedes Mal benutzt werden sollen, wenn die Anweisung ausgeführt wird. Die Anweisung braucht nicht jedes Mal vorbereitet zu werden.
Löschen Sie die·Anweisung
In diesem Schritt geben Sie die Ressourcen frei, die für die vorbereitete Anweisung in Beschlag genommen wurden. Einige Programmierschnittstellen verarbeiten diesen Schritt automatisch.
Im Allgemeinen sollten Sie Anweisungen nicht vorbereiten, wenn sie nur einmal ausgeführt werden sollen. Bei getrennter Vorbereitung und Durchführung kommt es zu leichten Einbußen bei der Performance, und außerdem werden dadurch unnötig komplizierte Schritte in die Anwendung eingefügt.
Bei manchen Schnittstellen müssen Sie allerdings eine Anweisung vorbereiten, um sie mit einem Cursor zu verbinden.
Hinweise zu Cursor finden Sie unter Der Cursor.
Die Aufrufe für die Vorbereitung und Ausführung von Anweisungen sind nicht Teil der SQL und unterscheiden sich daher je nach verwendeter Schnittstelle. Jede Programmierschnittstelle von SQL Anywhere bietet eine Methode für die Verwendung von vorbereiteten Anweisungen.
Vorbereitete Anweisungen verwenden
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |