ShowplanCapturer PDF Drucken E-Mail

 

Wer Probleme mit der Performance seiner Abfragen hat, sollte nichts unversucht lassen, um dem beizukommen. Und wenn man sich auch den Abfrage-Ausführungsplan selbst ansieht, den Access nach der Einstellung entsprechender Registry-Einträge ausspuckt. Ganz leicht geht dies mit dem Showplan Capturer.

Ausführungspläne betrachten

Neue Version 12/2009!

Üblicherweise geht man beim Ansehen der Abfrage-Ausführungspläne so vor: Man nimmt eine Einstellung in der Registry vor (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug, dort einen Eintrag JETSHOWPLAN hinzufügen und auf "ON"/"OFF" setzen) und untersucht dann die von Access in einer Datei namens showplan.out gespeicherten Anweisungen. Ein Problem dabei ist, dass Access diese Datei mitunter nicht immer an die gleiche Stelle schreibt, ein anderes, dass die Ausgabe natürlich die Performance zusätzlich in die Knie zwingt.

Mit dem ShowplanCapturer von Sascha Trowitzsch geht dies einfacher: Es handelt sich dabei um eine einfache Exe-Datei, die parallel zu Access läuft. Sie stellen dort einfach ein, ob Sie die Ausgabe der Jet-Engine oder der ACE von Access 2007/2010 einlesen möchten und ob der Dialog immer sichtbar sein soll. Dann können Sie schon loslegen: Öffnen Sie die gewünschte Datenbank, was durch die Anzeige der aktiven Access-Instanz quittiert wird, und führen Sie eine Abfrage aus. Der Showplan Capturer schreibt den Ausführungsplan in eine Datei, die vom Showplan Capturer eingelesen und angezeigt wird. Um die Übersicht zu wahren, sollten Sie diese Datei hin und wieder leeren.

 

Anmerkung zu Version 6

Das Setzen des Schlüssels zum Aktivieren/Deaktivieren des Showplans erfordert Administratorrechte.
Deshalb kann das Tool nur funktonieren, wenn es im Administratorkontext gestartet wird.
Für Vista/Win7 ist deshalb nun ein Elevation-Manifest eingebaut. Unter diesen Betriebssystemen lief Version 5 nicht korrekt.

Anmerkung zu Version 7

Unter Vista und Win7 funktionierte das Tool für Access 2007/2010 unter Umständen nicht.
Grund ist, dass hier manchmal, aber nicht immer - Umstände unklar, dokumentiert ist nichts - die ACE nicht im Registry-Pfad

HKLM\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Debug

nachsieht, sondern im virtualisierten Pfad

HKCU\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Debug

Auch für JET4 scheinen teiweise ähnliche Umstände zu gelten.

Der damit einhergehende Fehler ist nun behoben.

Anmerkung zu Version 8

Ursprünglich war daran gedacht, das Tool auch als Access-Addin verwendbar zu machen. Deshalb ließ sich das Tool auch als ActiveX-Exe registrieren, was zu Problemen führte, da nur eine Instanz des Tools laufen kann.
Dieser Modus ist in V8 nun deaktiviert.

Anmerkung zu Version 9

Auf Nachfrage aus dem englischprachigen Bereich ergaben sich zwei neue Features. Zum einen schaltet die Oberfläche automatisch  auf Englisch, wenn dies auch die Betriebssystemsprache ist, zum Anderen ist nun ein Suchfeld integriert mit dessen Hilfe man beliebige Begriffen in umfangreicheren Showplans finden kann.

 

Download ToolDownload mossTOOLS ShowplanCapture v9  (01/2010; english version included)

 

 
Kommentare (4)
Update 12/2009
4 Freitag, 11. Dezember 2009 um 00:22 Uhr
Sascha Trowitzsch
Hallo Georg,
...und @All:

Abermals ein Bugfix.
Mir waren HKLM und HKCU für die virtualisieren Registry-Pfade durcheinander gekommen.
Außerdem stellte ich fest, dass u.U. der virtualisierte Pfad ebenso bei JET 4.0 abgefragt werden kann.
Nun sollte es aber wirklich klappen. ;-)

Gruß, Sascha
v7 11/2009
3 Sonntag, 29. November 2009 um 00:27 Uhr
Georg
Hallo Sascha,
danke für die schnelle Antwort. Klappt leider auch nicht (ich arbeite auch noch unter XP)
Gruß Georg
Zu Version 7
2 Freitag, 27. November 2009 um 23:54 Uhr
Sascha Trowtzsch
Hallo Georg,

Das Verhalten hatte ich auch schon.
Warum und wie es zu dieser Missfunktion kam, ist mir auch nicht klar. Ich weiß nur, dass es unter Vista schon mal ging, irgendwann aber nicht mehr.
Ich habe anlässlich deines Kommentars schließlich einen Registry-Trace bei laufendem Access gemacht und das herausgefunden, was oben unter Version 7 steht.
Nun geht's wieder. Teste mal, ob's mit der neuen Version bei dir auch klappt.

Gruß, Sascha
loggt nicht...
1 Donnerstag, 26. November 2009 um 19:53 Uhr
Georg
Hallo,
habe das Tool getestet: auf einem Rechner mit A2003 läuft alles super, nur auch meinem mit A2007 wird überhaup nichts geloggt, das Fenster bleibt leer (Jet 4 und ACE getestet).
Könnte das an meiner Parallelinstallation A2007 und A97 liegen ?
Die 'händische' Variante per Registry geht leider auch nicht. In der Registry wird übrigens alles richtig gesetzt...

Gruß Georg

Ihren Kommentar hinzufügen

Ihr Name:
Betreff:
Kommentar:
  Bild, welches den Sicherheitscode enthält
Sicherheitscode: