Zugriffspläne anhand von Momentaufnahmen von EXPLAIN-Informationen nach der Ausführung des Dienstprogramms RUNSTATS vergleichen

Sie können das Dienstprogramm RUNSTATS ausführen, um aktuelle Statistikdaten zu Tabellen und Indizes zu erfassen. Die Ausführung dieses Dienstprogramms liefert dem Optimierungsprogramm die genauesten Informationen zum Generieren des besten Zugriffsplans.

Vorbereitende Schritte

Stellen Sie sicher, dass die Voraussetzungen erfüllt sind.

Informationen zu diesem Vorgang

In dieser Prozedur erstellen Sie vor der Ausführung des Dienstprogramms RUNSTATS eine Abfrageworkload, die die SQL-Anweisungen aus Ihrer Anwendung enthält, und bearbeiten diese mit EXPLAIN. Anschließend führen Sie RUNSTATS aus. Zum Schluss erstellen Sie eine weitere Abfrageworkload, die die SQL-Anweisungen in Ihrer Anwendung enthält, bearbeiten die Workload mit EXPLAIN und vergleichen die EXPLAIN-Momentaufnahme für die erste Abfrageworkload mit der EXPLAIN-Momentaufnahme für die zweite Abfrageworkload.

Obwohl diese Prozedur zwei getrennte Abfrageworkloads verwendet, können Sie eine einzige Abfrageworkload erstellen, diese mit EXPLAIN bearbeiten, RUNSTATS ausführen und dann die Abfrageworkload erneut mit EXPLAIN bearbeiten. Anschließend können Sie die beiden EXPLAIN-Momentaufnahmen vergleichen.

Vorgehensweise

Gehen Sie wie folgt vor, um Zugriffspläne anhand von Momentaufnahmen von EXPLAIN-Informationen nach der Ausführung des Dienstprogramms RUNSTATS zu vergleichen

  1. Erstellen Sie eine Abfrageworkload der SQL-Anweisungen, die in Ihrer Anwendung enthalten sind.
    1. Erfassen Sie die SQL-Anweisungen.
    2. Klicken Sie nach der Erfassung von SQL-Anweisungen auf die Schaltfläche Abfrageworkload aus allen Anweisungen erstellen.
    3. Geben Sie im Fenster Workloadnamen und -beschreibung eingeben Informationen zur Identifikation der neuen Workload ein.
    Die Seite Workloads verwalten und optimieren des Abschnitts Verwalten wird geöffnet. Die neue Abfrageworkload wird in der Tabelle auf dieser Seite angezeigt. Der Status der Abfrageworkload ist CAPTURED.
  2. Bearbeiten Sie die Abfrageworkload mit EXPLAIN.
    Anmerkung: Wenn Sie SQL-Anweisungen aus den folgenden Quellen erfasst haben und sich für die Speicherung von EXPLAIN-Informationen beim Erstellen der Abfrageworkload entschieden haben, müssen Sie die Abfrageworkload nicht mit EXPLAIN bearbeiten.
    • DB2 for Linux, UNIX, and Windows: ACTIVITIES-Ereignismonitore, EXPLAIN-Tabellen, Pakete, Paketcache
    • DB2 for z/OS: Katalogpläne und Pakete, Cache für dynamische Anweisungen
    1. Wählen Sie auf der Seite Workloads verwalten die Abfrageworkload aus und wählen Sie Ausgewählte Workload mit EXPLAIN bearbeiten im Feld Weitere Aktionen aus.
    2. Geben Sie im Fenster EXPLAIN-Informationen erfassen optionale Werte für die Laufzeitumgebung der SQL-Anweisungen an, die sich in der Abfrageworkload befinden.
  3. Führen Sie RUNSTATS-Steueranweisungen aus, um Statistikdaten für ein Datenbankobjekt zu sammeln und zu aktualisieren. Bei statischen Anweisungen, binden Sie anschließend die Pakete erneut, wobei die Option EXPLAIN auf YES und die Option ACTION auf REPLACE gesetzt ist.
  4. Erstellen Sie eine weitere Abfrageworkload der SQL-Anweisungen, die in Ihrer Anwendung enthalten sind.
    1. Erfassen Sie die SQL-Anweisungen.
    2. Klicken Sie nach der Erfassung von SQL-Anweisungen auf die Schaltfläche Abfrageworkload aus allen Anweisungen erstellen.
    3. Geben Sie im Fenster Workloadnamen und -beschreibung eingeben Informationen zur Identifikation der neuen Workload ein.
  5. Bearbeiten Sie die Abfrageworkload mit EXPLAIN.
    Anmerkung: Wenn Sie SQL-Anweisungen aus den folgenden Quellen erfasst haben und sich für die Speicherung von EXPLAIN-Informationen beim Erstellen der Abfrageworkload entschieden haben, müssen Sie die Abfrageworkload nicht mit EXPLAIN bearbeiten.
    • DB2 for Linux, UNIX, and Windows: ACTIVITIES-Ereignismonitore, EXPLAIN-Tabellen, Pakete, Paketcache
    • DB2 for z/OS: Katalogpläne und Pakete, Cache für dynamische Anweisungen
    1. Wählen Sie auf der Seite Workloads verwalten die Abfrageworkload aus und wählen Sie Ausgewählte Workload mit EXPLAIN bearbeiten im Feld Weitere Aktionen aus.
    2. Geben Sie im Fenster EXPLAIN-Informationen erfassen optionale Werte für die Laufzeitumgebung der SQL-Anweisungen an, die sich in der Abfrageworkload befinden.
  6. Vergleichen Sie die beiden Abfrageworkloads.
    1. Klicken Sie auf der linken Seite des Workflowassistenten auf die Registerkarte Verwalten.
    2. Wählen Sie auf der Seite Workloads verwalten die Abfrageworkload aus, die Sie in Schritt 2 mit EXPLAIN bearbeitet haben. Klicken Sie dann auf die Schaltfläche Vergleichen.
    3. Wählen Sie im Fenster Auswählen, um einen Vergleich mit einer anderen Workload oder Momentaufnahme durchzuführen die Option Zugriffspläne für die ausgewählte Workload mit Zugriffsplänen für eine andere Workload vergleichen aus und klicken Sie auf OK.
    4. Führen Sie die Schritte im Assistenten Zugriffspläne mit Zugriffsplänen in einer anderen Workload vergleichen aus.
    5. Suchen Sie nach Abschluss des Vergleichs nach Änderungen an Zugriffsplänen und am geschätzten Aufwand. Wenn es keine Änderungen gibt, die Aktionen erfordern, ist der Vergleich abgeschlossen. Wenn es jedoch Änderungen gibt, für die Aktionen erforderlich sind, fahren Sie mit dem nächsten Schritt fort.
  7. Wenn Sie eine Abfrageworkload erstellen und optimieren wollen, die die SQL-Anweisungen mit Leistungsproblemen enthält, wählen Sie Neue Abfrageworkload für Optimierung erstellen im Feld Weitere Aktionen der Seite Vergleichsergebnisse nach EXPLAIN-Momentaufnahmen und SQL-Anweisungen anzeigen des Abschnitts Vergleichen aus. Der Assistent Neue Abfrageworkload generieren wird geöffnet. In diesem Assistenten können Sie Kriterien für den Einschluss von SQL-Anweisungen in die Abfrageworkload festlegen. Nachdem die Abfrageworkload erstellt wurde, können Sie sie mit den folgenden allgemeinen Schritte optimieren.
  8. Wenn Sie Optimierungshinweise oder Optimierungsprofile für mindestens eine problematische Anweisung erstellen wollen, führen Sie einen der folgenden Schritte aus:
    1. Wählen Sie eine Anweisung aus der Liste von Anweisungen aus, für die Sie die Zugriffspläne verglichen haben.
    2. Klicken Sie auf die Schaltfläche Details anzeigen am Anfang der Liste.
    3. Klicken Sie oben auf der Seite Vergleichsergebnisse nach SQL-Anweisungszugriffsplan anzeigen auf die Schaltfläche Optimierungshinweis erstellen oder auf die Schaltfläche Optimierungsprofil erstellen. Welche Schaltfläche angezeigt wird, hängt von der verwendeten Datenbankverbindung ab.
  9. Wenn Sie bei statischen SQL-Anweisungen eine Abfrageworkload der problematischen Anweisungen optimiert haben oder Optimierungshinweise oder Optimierungsprofile erstellt haben, binden Sie die Pakete erneut. Setzen Sie die EXPLAIN-Option auf YES, falls Sie die EXPLAIN-Momentaufnahme der Bindezeit noch für spätere Vergleiche verwenden wollen.

Feedback