Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL: Datenbankabfragen beschleunigen

JetShowPlan anzeigen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit einem JetShowPlan lassen Sie sich von Access zeigen, welche Optimierungen bei der Ausführung einer Abfrage intern tatsächlich durchgeführt werden – oder auch nicht.

Transkript

Wenn Sie wirklich wissen wollen, was hinter den Kulissen bei Access passiert, dann brauchen Sie den so genannten JetShowPlan. Jet heißt er deswegen, weil das Modul hinter Access, was die eigentliche Arbeit macht, die so genannte JetEngine ist, und ein ShowPlan ist die Liste aller Aktivitäten, die diese JetEngine vornimmt, um Ihre Abfrage auszuführen. Es ist nämlich nicht so, dass SQL-Code von Ihnen so genommen und ausgeführt wird, sondern im Hintergrund probiert, die JetEngine, was jeweils günstiger ist. Ob man diesen Code verbessern, zerlegen oder sonst wie optimieren kann. Da ist es natürlich hilfreich, zuzugucken. Es gibt also wirklich detaillierte Angaben, zur Ausführung von Abfragen. Und ich kann Ihnen schon einmal versprechen, die sind so detailliert, das möchten Sie gar nicht alles wissen. Aber Sie können bei der Gelegenheit dann wirklich rausfinden, was da eigentlich passiert. Man muss ganz klar sagen, das reduziert natürlich die Performance. Weil neben der eigentlichen Tätigkeit noch jemand Protokoll raus schreiben muss in eine Datei. Und zwar nicht zu knapp. Diese Datei, die showplan.out heißt, wird klassischerweise erzeugt in Ihrem Dokumente-Ordner. Manchmal auch im gleichen Verzeichnis, wie die Datenbank. Und bevor das überhaupt passiert, müssen Sie Access erst einschalten. Und zwar nicht in einer der Access-Optionen, sondern in der Registry müssen Sie einen Registry-Eintrag, vor einem Access-Neustart übrigens, und in der Registry, also etwas eingetragen haben in verschiedenen Pfaden. Ich habe Ihnen zwei Varianten hier einmal hin geschrieben. Die unterscheiden sich vor allem dort. Die obere Variante ist hier eine Access-15 - heißt, die interne 15-er Nummerierung ist nach außen ein Access 2013. Access 2010 ist eine Nummer 14 und Ähnliches. Dann müssen Sie also hier eventuell eine dieser Nummer ändern. Bis hier finden Sie das typischerweise auch in der Registry selber. Wahrscheinlich auch nach Engines, aber das Debug und das JetShowPlan ist normalerweise nicht drin. Und dann würden Sie also einfach eine Registry-Datei erzeugen, die die Endung .rec hat und genau das hier erzeugt. Das können Sie zu Fuß eintragen, oder Sie machen sich eine entsprechende Datei, die das entweder auf ON, bzw. auf OFF schaltet, wenn Sie es wieder los werden wollen. Und das wollen Sie, nachdem Sie gesehen haben, was sie alles reinschreiben und dass es Zeit kostet. Dieses gelb markierte ist der Sonderfall, dass Sie ein Office in der 32-bit Version auf einem Windows in der 64-bit Version betreiben. Dann gibt es da noch so einen Zwischenschlüssel. Falls Sie sich wundern, dass Sie das bei sich in der Registry nicht an dieser Stelle finden, dann gucken Sie dort nach. Das ist also die Vorbereitung, um jetzt überhaupt erst einmal Ergebnisse zu sehen. Das bedeutet, jede Abfrage wird dort Daten reinschreiben. Die ShowPlan-Datei ist eine, freundlich gesagt, eher unstrukturierte Textdatei. Es ist jednefalls keine tabllarische Auflistung,die man schön in Excel angucken muss. Und die wird schnell sehr umfangreich. Es gibt keine wirklich brauchbare Analyse-Tools dafür und, man muss es auch ehrlich sagen, praktisch keine Dokumentation. Da kann man nur so ein bisschen raten, dass Sie schon einmal eine Idee haben, wie es nachher aussieht. Das ist also wirklich eine Textdatei, wo hinter einander rein geschrieben wird, und zwar dran gehängt. Wenn Sie die 95. Abfrage ausführen, sind die 94 vorherigen Informationen noch drin und die sind bedeutend länger, als Sie es hier im Moment gerade sehen. Wenn Sie sich das dort angucken, dann lohnt es sich, wenigstens so ein paar Schlüssel-Wörter anzusehen. Also Sie werden dort etwas finden, was z.B. heißt using Rushomre. Rushomre ist der Mechanismus, mit dem die JetEngine die perfekten Abfragen erzeugen kann, bei denen ein Index da ist, bei denen keine merkwürdigen Filter mit benutzer- definierten VBA-Funktionen genutzt werden. Leidlich gut ist noch, wenn da so etwas steht wie using index und dann kommt ein Feldname. Dann wird immerhin noch der Index benutzt. Richtig schlecht ist es, wenn da steht using X-Prod join. Das ist so etwas Typisches, wenn Sie eine Kreuztabelle oder dieses karthesische Kreuzprodukt erzeugen, jeder Datensatz mit jedem anderen. Das erzeugt nicht nur Milliarden von Datensätzen, sondern eben auch richtig schlechte Laufzeit. Das ist also im wesentlichen das, was man mit dieser ShowPlan- Datei analysieren kann. Vielleicht erzeugen wir einfach einmal eine und gucken rein. Ich habe also in der Registry hier an dieser Stelle den entsprechenden Schlüssel erzeugen lassen. JetShowPlan - On Und wenn Sie es wieder los werden - OFF. Es reicht auch, wenn Sie den Schlüssel löschen. Und ich habe auch bereits das Dokumente-Verzeichnis angezeigt. Hier ist keine Datei enthalten. Das können wir erst einmal zur Seite schieben. Hier habe ich eine völlig beliebige Abfrage erzeugt, die nichts anderes macht, als die Tabelle viele Daten zu nehmen, und hier irgendwie zu sortieren. Das ist überflüssig. Das kann direkt wieder raus. Aber das wird auch nichts Schlimmes erzeugen. Und jetzt wird die genau einmal ausgeführt. Jetzt finden wir hier in dem Dokumente-Ordner genau diese eine Datei. Die kann ich mir jetzt ansehen im Editor. Sie werden feststellen, das ist noch relativ übersichtlich. Und jedes Mal, wenn Sie diese Datei starten, kommt hier ein neuer Eintrag dazu. Wenn ich jetzt, beispielsweise, eine Kreuztabelle, wie diese hier, die im Entwurf zu sehen ist, ausführen lasse, das habe ich eben schon einmal gemacht, dann sehen Sie, dass in dieser Datei einiges mehr rein geschrieben wird. Da finden auch die entsprechenden Angaben, using index und Ähnliches. Das ist also alleine nur eine einzige ausgeführte Abfrage, die jetzt dazu gekommen ist. Sie merken also schon, da ist relativ schnell sehr viel an Daten drin. Sie können die Datei zwischendurch ganz gnadenlos einfach löschen. Mit jeder neuen Abfrage wird sie zur Not angelegt. Das macht es bedeutend übersichtlicher, wenn Sie nur für diese eine Abfrage sehen wollen, was dabei rauskommt. Löschen Sie vorher die Datei, die wird angelegt und Sie sehen zu exakt dieser Abfrage die Ergebnisse.

SQL: Datenbankabfragen beschleunigen

Entdecken Sie, wo das Beschleunigungspotenzial für SQL-Datenbanken liegt und lernen Sie die Rezepte für bessere Performance.

2 Std. 15 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:25.03.2015
Laufzeit:2 Std. 15 min (39 Videos)

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!