Gespeicherte Prozeduren

Werbung
SQL Server und Co.
Gespeicherte Prozeduren
Gespeicherte Prozeduren
Bernd Jungbluth, Horn
„Oh – by the way: The same procedure as last year, Miss Sophie?“ „The same procedure as every
year, James.“ Auch der SQL Server bietet Procedures: Stored Procedures. Und wie auch Miss Sophie
greift der SQL Server gerne auf altbewährte Procedures zurück – natürlich weitaus öfter als nur
einmal im Jahr und auch nicht immer nur auf ein und dieselbe Weise. Im Gegenteil: Sie können
für die Verwaltung und Aufbereitung Ihrer Daten mehrere Stored Procedures in Ihrer Datenbank
anlegen und diese immer wieder verwenden. Das sollten Sie auch ausgiebig tun, denn gerade Stored Procedures bieten das meiste Potenzial, wenn es um Geschwindigkeit, Datenkonsistenz und die
Implementation von Geschäftslogik geht.
Eine Stored Procedure ist nichts anderes als eine
Prozedur, in der, ähnlich einer VBA-Funktion,
mehrere Anweisungen – hier natürlich SQL-Anweisungen – gespeichert werden. Daher auch der
Name Stored Procedure (zu deutsch: gespeicherte Prozedur).
Warum aber sollten SQL-Anweisungen auf dem
SQL Server gespeichert werden? Immerhin können
die SQL-Anweisungen doch im Frontend wunderbar nach den dort gegebenen Umständen zur Laufzeit zusammengestellt und ausgeführt werden. Die
Antwort auf diese Frage lautet: Geschwindigkeit.
Geschwindigkeit
Bevor der SQL Server eine SQL-Anweisung ausführt,
prüft er zunächst die Syntax der SQL-Anweisung.
Zu dieser Syntaxprüfung gehört nicht nur die Kontrolle der Syntax der einzelnen Befehle, sondern es
Zusammenfassung
Tipps und Tricks zum Einsatz von gespeicherten Prozeduren
in einer MDB
Techniken
SQL Server 2005, Access 2000-2007, VBA, T-SQL
Voraussetzungen
Access, VBA, T-SQL
Beispieldateien
SPs.mdb, spUpdateInsertRegion.sql,
spBestellungenKundeMitAnzPos.sql
Shortlink
626
14
Access im Unternehmen
5/2008
wird auch die Existenz der dort angegebenen SQL
Server-Objekte, wie Tabellen, Sichten und deren
Spalten, geprüft. Diese Syntaxprüfung erfolgt vor
jeder Ausführung der SQL-Anweisung.
Nach der Syntaxkontrolle wird die SQL-Anweisung
zunächst kompiliert, das heißt, es wird ein Ausführungsplan für die Ermittlung der Daten durch den
Abfrageoptimierer erstellt. Dieser Ausführungsplan
ist mit einer Wegbeschreibung vergleichbar. Er
enthält die Reihenfolge, in der etwa die Tabellen
der SQL-Anweisung gelesen oder welche Indizes
benutzt werden. Anhand dieses Ausführungsplans
wird die SQL-Anweisung ausgeführt.
Auch bei der Ausführung einer gespeicherten
Prozedur wird zunächst eine Syntaxkontrolle
durchgeführt und ein Ausführungsplan erstellt.
Doch im Gegensatz zur SQL-Anweisung nicht
bei jeder, sondern nur bei der ersten Ausführung.
Denn der Ausführungsplan wird im sogenannten
Prozedurcache – also im Arbeitsspeicher – abgelegt. Bei der nächsten Ausführung entfallen Syntaxkontrolle und Kompilieren der gespeicherten
Prozedur. Der SQL Server greift direkt auf den
Ausführungsplan im Arbeitsspeicher zu. Und das
macht die Ausführung von gespeicherten Prozeduren schnell – sehr schnell.
Aber nicht nur die Geschwindigkeit ist ein Trumpf
der gespeicherten Prozeduren. Mit gespeicherten
Prozeduren können Sie auch die Datenkonsistenz
und das Einhalten von Geschäftsregeln gewährleisten.
www.access-im-unternehmen.de
Herunterladen