DB2 Universal Database - Systemverwaltung


Verwenden der SQL-EXPLAIN-Einrichtung

EXPLAIN-Informationen können mit Hilfe verschiedener Mittel erfaßt werden:

  1. BIND/PREP-Optionen EXPLAIN und EXPLSNAP
  2. Sonderregister CURRENT EXPLAIN MODE und CURRENT EXPLAIN SNAPSHOT
  3. SQL-Anweisung EXPLAIN
  4. Programm db2vexp (ruft zum Anzeigen der Informationen Visual Explain ebenfalls direkt auf)

Es gibt drei Gründe, aus denen das Sammeln und Verwenden von EXPLAIN-Daten wünschenswert sein kann:

  1. Um die verschiedenen Schritte, d. h. den Zugriffsplan, zu verstehen, die der Datenbankmanager zur Erfüllung Ihrer Abfrage ausführen muß. Im Abschnitt Datenzugriffskonzepte und Optimierung finden Sie Informationen, die Sie vielleicht zum Verständnis der EXPLAIN-Ausgabe benötigen.
  2. Um die Ergebnisse von Maßnahmen zur Leistungsverbesserung bewerten zu können. Es gibt eine Anzahl von Maßnahmen, die Ihnen helfen, die Leistung Ihrer Abfragen zu verbessern. Viele dieser möglichen Maßnahmen werden in Abschnitten der folgenden Kapitel beschrieben:

    Nach Änderungen in einem dieser Bereiche können Sie mit der SQL-EXPLAIN-Einrichtung die Auswirkungen ermitteln, die die Änderungen auf den ausgewählten Zugriffsplan haben. Wenn Sie zum Beispiel entsprechend den Empfehlungen im Abschnitt Auswirkung des Indexierens auf die Abfrageoptimierung einen Index hinzufügen, können Sie anhand der EXPLAIN-Daten herausfinden, ob der Index tatsächlich in erwarteter Weise verwendet wird.

    Zwar erlaubt die EXPLAIN-Ausgabe das Feststellen des ausgewählten Zugriffsplans und des für ihn erforderlichen relativen Aufwands, aber die einzige Möglichkeit, die Verbesserung der Leistung genau zu messen, sind Vergleichstests (eine Beschreibung finden Sie in Kapitel 31, Durchführen von Vergleichstests).

  3. Zum Verständnis der Ursachen für Änderungen in der Abfrageleistung benötigen Sie die EXPLAIN-Informationen vor und nach den Änderungen, um die Auswirkungen analysieren zu können. Daher sollten Sie beim Kompilieren einer SQL-Anweisung für die Datenbank folgendes durchführen:

    Die auf diese Weise ermittelten Informationen geben Ihnen einen Vorher-Status, den Sie für die zukünftige Analyse als Referenzpunkt verwenden können. Bei dynamischen SQL-Anweisungen können Sie diese Informationen auch bei der ersten Ausführung Ihrer Anwendung erfassen. Bei statischen SQL-Anweisungen können Sie diese Informationen auch beim Binden erfassen.

    Wenn Sie die Ursache einer Änderung in der Leistung analysieren möchten, können Sie den ermittelten Vorher-Status mit den Informationen vergleichen, die Sie über die Abfrage und die Umgebung sammeln, wenn Sie Ihre Analyse starten (d. h. den Nachher-Daten).

    Ein einfaches Beispiel hierfür wäre z. B., wenn Ihre Analyse ergäbe, daß ein Index nicht mehr als Bestandteil des Zugriffspfads verwendet wird. Mit Hilfe der in Visual Explain angezeigten Informationen der Katalogstatistiken könnten Sie feststellen, daß die Anzahl von Indexstufen (Spalte NLEVELS) nun wesentlich höher ist als zu dem Zeitpunkt, als die Abfrage zum ersten Mal an die Datenbank gebunden wurde. Sie hätten in diesem Fall folgende Möglichkeiten:

    Anschließend stellen Sie möglicherweise fest, daß der Index im Zugriffsplan wieder verwendet wird und daß die Leistung der Abfrage kein Problem mehr darstellt.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]