In der Regel müssen Sie nach dem Hinzufügen, Entfernen oder Ändern von SQL-Anweisungen das zugehörige DB2-Paket erneut binden, indem Sie den Befehl BIND mit der Unteroption ACTION(REPLACE) ausführen. Das Ausführen dieses Befehls kann den Zugriffsplan für die SQL-Anweisungen ändern und sich auf die Leistung auswirken.
Informationen zu diesem Vorgang
In dieser Prozedur erstellen Sie eine Abfrageworkload, die die SQL-Anweisungen in einer Anwendung enthält, und bearbeiten diese mit EXPLAIN. Dann nehmen Sie die erforderlichen Änderungen an den SQL-Anweisungen in Ihrer Anwendung vor. Anschließend erstellen Sie eine weitere Abfrageworkload, die die SQL-Anweisungen in Ihrer Anwendung enthält, und bearbeiten sie mit EXPLAIN. Zuletzt vergleichen Sie die EXPLAIN-Momentaufnahme für die erste Abfrageworkload mit der EXPLAIN-Momentaufnahme für die zweite Abfrageworkload.
Eine EXPLAIN-Momentaufnahme in InfoSphere Optim Query Workload Tuner ist eine Gruppe von EXPLAIN-Informationen, die zu einem bestimmten Zeitpunkt erfasst werden.
Vorgehensweise
Gehen Sie wie folgt vor, um Änderungen an Zugriffsplänen durch das Hinzufügen, Entfernen oder Ändern von SQL-Anweisungen zu ermitteln und zu korrigieren:
- Erstellen Sie eine Abfrageworkload der SQL-Anweisungen, die in Ihrer Anwendung enthalten sind.
- Erfassen Sie die SQL-Anweisungen.
- Klicken nach dem Erfassen der SQL-Anweisungen auf die Schaltfläche Alle in Workload speichern.
- 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.
- 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
- 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.
- Geben Sie im Fenster EXPLAIN-Informationen erfassen optionale Werte für die Laufzeitumgebung der SQL-Anweisungen an, die sich in der Abfrageworkload befinden.
- Fügen Sie SQL-Anweisungen zu Ihrer Anwendung hinzu, entfernen Sie sie oder ändern Sie sie. Bei statischen Anweisungen, binden Sie anschließend die Pakete erneut, wobei die Option EXPLAIN auf YES und die Option ACTION auf REPLACE gesetzt ist.
- Erstellen Sie eine weitere Abfrageworkload der SQL-Anweisungen, die in Ihrer Anwendung enthalten sind.
- Erfassen Sie die SQL-Anweisungen.
- Klicken nach dem Erfassen der SQL-Anweisungen auf die Schaltfläche Alle in Workload speichern.
- Geben Sie im Fenster Workloadnamen und -beschreibung eingeben Informationen zur Identifikation der neuen Workload ein.
- 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
- 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.
- Geben Sie im Fenster EXPLAIN-Informationen erfassen optionale Werte für die Laufzeitumgebung der SQL-Anweisungen an, die sich in der Abfrageworkload befinden.
- Vergleichen Sie die beiden Abfrageworkloads.
- Klicken Sie auf der linken Seite des Workflowassistenten auf die Registerkarte Verwalten.
- 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.
- 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.
- Führen Sie die Schritte im Assistenten Zugriffspläne mit Zugriffsplänen in einer anderen Workload vergleichen aus.
- 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.
- 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.
- Wenn Sie Optimierungshinweise oder Optimierungsprofile für mindestens eine problematische Anweisung erstellen wollen, führen Sie einen der folgenden Schritte aus:
- Wählen Sie eine Anweisung aus der Liste von Anweisungen aus, für die Sie die Zugriffspläne verglichen haben.
- Klicken Sie auf die Schaltfläche Details anzeigen am Anfang der Liste.
- 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.
- 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.