Sie können für eine SQL- oder XPATH-Anweisung ein Diagramm des aktuellen Zugriffsplans generieren, um festzustellen, wie Ihr Datenserver die Anweisung verarbeitet. Anhand der Informationen in der Grafik können Sie die SQL-Anweisungen so optimieren, dass deren Leistung verbessert wird.
Vorbereitende Schritte
Visual Explain in der Workbench unterstützt die folgenden Datenserver:
- DB2 Version 9.1.5 für Linux®, UNIX® und Windows®
- DB2 Version 9.5.1 für Linux, UNIX und Windows und höher
- DB2 Version 9.7.1 für Linux, UNIX und Windows und höher
- DB2 UDB für z/OS Version 8 (Kompatibilitätsmodus)
- DB2 UDB für z/OS Version 8 (neuer Funktionsmodus)
- DB2 Version 9.1 für z/OS
- DB2 Version 10 für z/OS
- IBM® Informix Dynamic Server (IDS) Version 11.50
- IBM Informix Dynamic Server Version 11.70
- Oracle-Datenbank Version 10g Release 2
- Oracle-Datenbank Version 11g Release 1
Wenn Sie Zugriffsplandiagramme für DB2 für z/OS erstellen wollen, müssen Sie das von Ihnen verwendete DB2-Subsystem konfigurieren: DB2 für z/OS-Subsysteme für Visual Explain konfigurieren
Einschränkung: Für IBM Informix Dynamic Server kann Visual Explain keine SELECT-Anweisungen mit EXPLAIN bearbeiten, die Parametermarken oder Hostvariablen enthalten.
Informationen zu diesem Vorgang
Mit Visual Explain haben Sie folgende Möglichkeiten:
- Sie können die Statistikdaten anzeigen, die bei der Optimierung verwendet wurden.
Diese Statistikdaten können Sie dann mit den aktuellen Katalogstatistikdaten vergleichen, um festzustellen, ob ein erneutes Binden des Pakets die Leistung möglicherweise verbessert.
- Sie können feststellen, ob für den Zugriff auf eine Tabelle ein Index verwendet wurde.
Wurde kein Index verwendet, kann Visual Explain Ihnen helfen festzustellen, für welche Spalten eine Indexierung von Nutzen sein könnte.
- Sie können zu jeder Operation im Zugriffsplan Informationen abrufen, einschließlich des geschätzten Gesamtaufwands und der Zahl abgerufener Zeilen (Kardinalität).
Vorgehensweise
Gehen Sie wie folgt vor, um das Diagramm des aktuellen Zugriffsplans für eine Abfrage zu generieren:
- Optional: Legen Sie Benutzervorgaben fest, wie Visual Explain arbeitet und wie Diagramme in Visual Explain angezeigt werden.
- Führen Sie einen der folgenden Schritte aus:
- Klicken Sie im Datenprojektexplorer mit der rechten Maustaste auf eine SQL-Anweisung, eine gespeicherte SQL-Prozedur oder eine benutzerdefinierte SQL-Funktion und wählen Sie Visual Explain öffnen aus.
- Klicken Sie im Datenquellenexplorer mit der rechten Maustaste auf eine Sicht, eine gespeicherte SQL-Prozedur oder eine benutzerdefinierte SQL-Funktion, die eine Anweisung INSERT, UPDATE, DELETE oder SELECT enthält. Wählen Sie Visual Explain öffnen aus. Findet die Workbench mehrere SQL- oder XQUERY-Anweisungen, verwendet sie die erste Anweisung.
- Heben Sie die Anweisung INSERT, UPDATE, DELETE oder SELECT oder die XPATH- oder XQUERY-Anweisung in einem SQL-Editor, Routineneditor oder Java™-Editor hervor, klicken Sie mit der rechten Maustaste darauf und wählen Sie Visual Explain öffnen aus.
Versuche, Visual Explain über eine SQL-Anweisung in einem Java-Editor zu öffnen, schlagen fehl, wenn die SQL-Anweisung Variablen enthält, die in Ihrer Anwendung deklariert sind. Die folgende SQL-Anweisung beispielsweise kann von Visual Explain aufgrund der beiden Variablen im Vergleichselement nicht analysiert werden:
select count(*), sum(order.price)
from order
where order.date > var_date_1
and order.date < var_date_2
Nach dem Binden oder Implementieren der Anwendung können Sie jedoch mithilfe von Optim Query Tuner oder den Funktionen zur Optimierung einzelner Abfragen in Data Studio die SQL-Anweisung aus einem DB2-Paket oder aus dem dynamischen Anweisungscache erfassen und anschließend optimieren.
Anmerkung: Visual Explain wird inaktiviert oder löst eine Ausnahmebedingung aus, wenn die ausgewählte SQL-Anweisung oder das ausgewählte Objekt nicht mit EXPLAIN bearbeitbar ist. Von Visual Explain können nur die in der folgenden Liste aufgeführten SQL-Anweisungen mit EXPLAIN bearbeitet werden:
- Bei DB2 für Linux, UNIX und Windows: CALL, Compound-SQL-Anweisung (dynamisch), DELETE, INSERT, MERGE, REFRESH, SELECT, SELECT INTO,
SET INTEGRITY, UPDATE, VALUES oder VALUES INTO.
- Bei DB2 für z/OS: SELECT, INSERT oder die durchsuchte Form einer Anweisung UPDATE oder DELETE.
- Geben Sie auf der ersten Seite des Assistenten das Abschlusszeichen für die SQL-, XPATH- oder XQUERY-Anweisung an, für die Sie ein Zugriffsplandiagramm erstellen wollen.
- Optional: Auf der ersten Seite des Assistenten können Sie außerdem Einstellungen für verschiedene Optionen angeben.
- Geben Sie an, ob die erfassten EXPLAIN-Daten in EXPLAIN-Tabellen gespeichert werden sollen. Wenn Sie diese Option auswählen, muss Visual Explain keine EXPLAIN-Daten erfassen, wenn Sie das nächste Mal für dieselbe Anweisung ein Zugriffsplandiagramm erstellen wollen.
Einschränkung: Diese Option ist für Oracle-Datenserver nicht verfügbar.
- Geben Sie das Verzeichnis an, das Visual Explain als Arbeitsverzeichnis verwenden soll.
- Wenn die IBM Unterstützungsfunktion einen Trace benötigt, geben Sie an, ob für die Erstellung des Zugriffsplandiagramms ein Trace erstellt werden soll und ob für die Erfassung der EXPLAIN-Daten ein Trace erstellt werden soll.
- Geben Sie an, ob Ihre Einstellungen als Standardwerte für alle Diagramme gespeichert werden sollen, die Sie mit Visual Explain erstellen. Sie können diese Standardeinstellungen im Fenster Benutzervorgaben ändern.
- Legen Sie auf der zweiten Seite des Assistenten Werte für die Sonderregister fest, um die Laufzeitumgebung anzupassen und so das Erfassen von EXPLAIN-Daten zu beeinflussen.
Wenn Visual Explain die Anweisung zum Erfassen von EXPLAIN-Daten ausführt, werden die von Ihnen angegebenen Werte verwendet.
Achtung: Beachten Sie die folgenden Informationen zu DB2-Datenservern.
- Für DB2 für z/OS: Wenn Sie für CURRENT
SCHEMA und CURRENT SQLID unterschiedliche Werte angeben, sucht Visual Explain nach EXPLAIN-Tabellen, die durch den in CURRENT SQLID angegebenen Wert qualifiziert werden. Findet Visual Explain keine EXPLAIN-Tabellen, die durch den Wert in CURRENT SQLID angegebenen Wert qualifiziert werden, wird versucht, die Tabellen unter Verwendung dieses Werts zu erstellen.
- Für DB2 für Linux, UNIX und Windows: Wenn Sie den Wert von CURRENT SCHEMA in einen Wert mit Sonderzeichen ändern, müssen Sie den Wert in einfache Anführungszeichen einschließen.
- Für DB2 für Linux, UNIX und Windows: Wählen Sie das Kontrollkästchen Spalten- und Spaltengruppenstatistik erfassen aus, wenn Visual
Explain detaillierte Statistikdaten zu Clusterspalten und Spalten erfassen soll, die in einer Klausel GROUP BY verwendet werden.
- Optional: Geben Sie auf der zweiten Seite des Assistenten an, ob Ihre Einstellungen als Standardeinstellungen für alle Diagramme gespeichert werden sollen, die Sie mit Visual Explain erstellen. Sie können diese Standardeinstellungen im Fenster Benutzervorgaben ändern.
- Klicken Sie auf Fertig stellen, um den Assistenten zu schließen und das Diagramm zu generieren.
Ergebnisse
Die Workbench zeigt das Diagramm in der Sicht
Zugriffsplandiagramm an. In dieser Sicht können Sie im Diagramm navigieren, Beschreibungen der Knoten im Diagramm anzeigen und nach Knoten suchen.