Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Server: Performance-Optimierung

Ad-hoc vs. Stored Procedures

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dieser Film geht auf die Unterschiede zwischen Ad-hoc-Abfragen und Stored Procedures ein und zeigt, wie der Server in die eine oder andere Richtung konfiguriert werden kann.
03:17

Transkript

Über eine kleine Einstellung im SQL-Server würde ich mich gerne mit Ihnen unterhalten, und zwar diejenige, die dem SQL-Server erlaubt, Abfragen, oder generell sein Verhalten bei Abfragen, zu optimieren, je nachdem ob es Ad-hoc-Abfragen sind, oder ob es Aufrufe von Prozeduren oder Funktionen sind. Und zwar gibt es eigentlich zwei verschiedene Lager von Abfragen. Es gibt einmal Ad-hoc-Abfragen. Das sind die einzelnen Statements, worin steht "SELECT" soundso, "INSERT" soundso, "DELETE" oder "UPDATE" soundso, das heißt einzelne Statements für einzelne Aktionen. Ich habe wie auf der anderen Seite bei Prozeduren nicht den Fall, dass ich nur noch Prozeduren aufrufe, was für die Performance vom SQL-Server durchaus optimal wäre und natürlich auch mir es erlaubt, eine Art API in der Datenbank zu etablieren, nämlich welche Prozedur für welche Aufgabe mit welchen Parametern vorgesehen ist. Allerdings, in der letzten Zeit verwenden immer mehr Projekte OR-Mapper wie das Entity Framework. Da habe ich natürlich auch die Möglichkeit, Stored Procedures zu verwenden, aber in vielen Fällen bin ich dann natürlich mit Ad-hoc-Statements unterwegs, das heißt der OR-Mapper baut mir das entsprechende Statement, sei es ein SELECT-Statement, oder sei es etwas, das Daten ändert, und versorgt das dann mit Parametern. Und ich kann im SQL-Server konfigurieren, ob er sein internes Caching-Verhalten eher für die eine oder für die andere Seite optimieren soll, und die Frage ist einfach: Benutze ich mehr Ad-hoc-Abfragen oder benutze ich mehr Stored Procedures an der Stelle? Sie können damit ein bisschen Performance durchaus rausholen. Und es macht auch Sinn, die Einstellung zu treffen, und zwar nur dann in dem Fall, wenn Sie wirklich die Frage Ad hoc versus Stored Procedure wirklich beantworten können. Im Zweifelsfall belassen Sie es einfach beim Standard. Der Standard ist gut und sinnvoll gewählt. Im SQL Server Management Studio können Sie einfach prüfen, wie die Einstellung zur Zeit gesetzt ist. Gehen Sie da einfach auf die Eigenschaften der Instanz, hier auf "Advanced", und schauen Sie sich an, was hier unter "Optimize for Ad hoc Workloads" eingestellt ist. Die Standardeinstellung lautet "False". Das bedeutet, die Optimierung geht zu Gunsten von Stored Procedures. Wenn Sie also mehr Ad-hoc-Statements verwenden, oder der Meinung sind, Sie würden mehr Ad-hoc-Statements verwenden, weil entsprechend bei Ihnen ein OR-Mapper zum Einsatz kommt, dann können Sie die Einstellung auf "True" setzen. Ich kann das Ganze scripten, wenn ich möchte. Dann sehen Sie, dass es ein einfacher Aufruf von sp_configure ist, der hier die Änderung durchführt. Und wenn ich dann hier unten auf "OK" klicke, dann wird der Wert auch sofort übernommen. Ich kann das Ganze prüfen, indem ich quasi ebenfalls sp_configure aufrufe mit nur einem Parameter, nämlich genau diesem Text hier. Und dann sehe ich, dass der konfigurierte und der derzeit für die Ausführung verwendete Wert entsprechend bei der 1 sind, das heißt jetzt ist die Optimierung hin zu Ad-hoc-Queries wie entsprechend von OR-Mappern verwendet. Probieren Sie diese Einstellung ruhig mal aus. Viel kaputt machen kann man nicht. Auf der anderen Seite: Erwarten Sie jetzt auch keine Wunder. Dennoch kann es sein, dass Sie damit durchaus das eine oder andere Quäntchen mehr Performance aus Ihrer SQL-Server-Anwendung oder SQL-Server-basierten Anwendung herausholen können.

SQL Server: Performance-Optimierung

Lernen Sie den Umgang mit Indizis und Tools, um die Leistungsfähigkiet Ihrer SQL Server Datenbank effektiv zu erhöhen.

3 Std. 20 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:04.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!