Sie können einen Optimierungshinweis für eine SQL-Anweisung, die auf einem DB2 for z/OS-Subsystem ausgeführt wird, erstellen, überprüfen und implementieren.
Mit einem Optimierungshinweis können Sie Kriterien festlegen, um das DB2-Optimierungsprogramm dabei zu unterstützen, den optimalen Ausführungsplan für die SQL-Anweisung auszuwählen.
Informationen zu diesem Vorgang
Die Angabe von Optimierungshinweisen für DB2 ist in
folgenden Situationen sinnvoll:- Sie wollen die Konsistenz von Antwortzeiten über erneute Bindeoperationen und über Releasemigrationen hinweg gewährleisten. Wenn ein Plan oder ein Paket erneut gebunden wird, wird der Zugriffspfad neu formuliert. Hat sich die Datenbank oder Anwendung geändert oder hat DB2 eine neue Funktion, durch die ein anderer Zugriffsplan ausgewählt wird, kann es von Vorteil sein, noch einen alten Zugriffsplan verwenden zu können, falls der neue Plan nicht so gut funktioniert.
- Sie wollen temporär den von DB2 ausgewählten Zugriffsplan umgehen.
Optimierungshinweise bestehen aus drei unterschiedlichen Hinweisarten:
- PLAN_TABLE-Hinweise
- Mit diesem Hinweistyp wird versucht, einen bestimmten Zugriffspfad für eine SQL-Anweisung zu erzwingen, die von einer einzelnen, bestimmten Berechtigungs-ID ausgegeben wird. Er verwendet Zeilen in einer PLAN_TABLE-Instanz, deren Eigner dieselbe Berechtigungs-ID ist, um Hinweise auf der Basis von Werten anzuwenden, die für die OPTHINT-Bindeoption oder das Sonderregister CURRENT OPTIMIZATION
HINT angegeben wurden.
- Zugriffspfadhinweise auf Anweisungsebene (Modus für neue Funktion von DB2 10 for z/OS oder höher)
- Dieser Hinweistyp gibt an, dass DB2 versucht, mithilfe angegebener PLAN_TABLE-Zeilen
den Zugriffspfad für übereinstimmende SQL-Anweisungen festzulegen. Sie können auch Zugriffspfadhinweise erstellen, die nur für übereinstimmende Anweisungen aus einem bestimmten Bereich gelten.
- Optimierungsparameterhinweise (Modus für neue Funktion von DB2 10 for z/OS oder höher)
- Dieser Hinweistyp gibt an, dass DB2 bestimmte Optimierungsparameter wie beispielsweise die folgenden Subsystemparameter und -optionen zur Verarbeitung aller Anweisungen verwendet, die dem Hinweis entsprechen:
- Bindeoption REOPT
- Subsystemparameter STARJOIN
- Subsystemparameter PARAMDEG (Spalte MAX_PAR_DEGREE)
- Subsystemparameter CDSSRDEF (Spalte DEF_CURR_DEGREE)
- Subsystemparameter SJTABLES
Sie können auch Hinweise erstellen, die Optimierungsparameter angeben und die nur für entsprechende Anweisungen aus einem bestimmten Bereich gelten.
Sie können jeweils nur einen Typ von Hinweis implementieren.
Sie können jedoch nacheinander unterschiedliche Typen von Hinweisen für eine einzelne SQL-Anweisung implementieren. Weitere Informationen finden Sie in
Koexistenz von Optimierungshinweisen.
Tipp: Wenn Sie nicht sicher sind, welcher Typ von Hinweis für Ihre Situation der richtige ist, können Sie alle drei Typen im Editor definieren und sie dann zum Testen nacheinander implementieren.
Vorgehensweise
Gehen Sie wie folgt vor, um einen Optimierungshinweis zu erstellen, zu prüfen und zu implementieren:
- Erfassen oder wählen Sie die SQL-Anweisung aus, für die Sie einen Optimierungshinweis erstellen wollen.
- Falls Sie ausgehend von einer einzelnen, erfassten SQL-Anweisung arbeiten wollen, führen Sie die folgenden Schritte aus:
- Erfassen Sie die SQL-Anweisung, die Sie optimieren wollen. Informationen dazu finden Sie in Positionen, über die Sie eine SQL-Anweisung zur Optimierung einzelner Abfragen erfassen können.
- Wählen Sie die Anweisung aus und klicken Sie auf die Schaltfläche Anweisung optimieren. Die Seite Advisorfunktionen für einzelne Abfragen und Analysetools ausführen des Abschnitts Aufrufen wird geöffnet.
- Falls Sie ausgehend von einer SQL-Anweisung arbeiten wollen, die sich in einer Abfrageworkload befindet, führen Sie die folgenden Schritte aus:
- Klicken Sie auf der linken Seite des Workflowassistenten auf die Registerkarte Verwalten.
- Wählen Sie auf der Seite Workloads verwalten die Abfrageworkload aus, die die SQL-Anweisung enthält.
- Wählen Sie Anweisungen anzeigen im Feld Weitere Aktionen aus.
- Klicken Sie in der Seite Anweisungen anzeigen mit der rechten Maustaste auf die SQL-Anweisung und wählen Sie Advisorfunktionen für einzelne Abfragen und Tools für die ausgewählte Anweisung ausführen aus. Die Seite Advisorfunktionen für einzelne Abfragen und Analysetools ausführen des Abschnitts
Aufrufen wird geöffnet.
- Erweitern Sie auf der linken Seite des Workflowassistenten unter Einzelne Abfrage die Option Erweitert und wählen Sie Optimierungshinweis erstellen aus. Der Workflowassistent öffnet die Seite Zugriffsplan mit Optimierungshinweis anpassen des Abschnitts Prüfen. Diese Seite enthält drei Abschnitte:
- Joindiagramm
- In einem Joindiagramm werden die folgenden Informationen angezeigt:
- Die Tabellen, die von der Abfrage angefasst werden und die im Diagramm als Knoten angezeigt werden.
- Die Beziehungen zwischen den Tabellen, die im Diagramm als Linien zwischen den Knoten angezeigt werden. Diese werden auf der Basis der Analyse der Abfragevergleichselemente generiert.
- Lokale und Joinvergleichselemente.
Doppelklicken Sie auf eine Tabelle, um anzupassen, wie die Tabelle im Zugriffsplan für die SQL-Anweisung referenziert werden soll. Die Anpassung wird in der Tabelle im Abschnitt Übersicht unten auf der Seite angezeigt. Die Anpassung ist noch nicht aktiv. Sie können dem Optimierungshinweis weiterhin andere Anpassungen hinzufügen.
- Bearbeitbares Joinsequenzdiagramm
- In einem Joinsequenzdiagramm werden die Joinsequenzen der Tabellen für den angegebenen Zugriffsplan angezeigt. Sie können die folgenden Aktionen ausführen:
- Ausgewählte Knoten löschen
- Einen Tabellenverweisknoten hinzufügen
- Auf eine Tabelle doppelklicken, um anzupassen, wie die Tabelle im Zugriffsplan für die SQL-Anweisung referenziert werden soll
- Einen Joinoperatorknoten hinzufügen
- Auf einen Joinoperatorknoten doppelklicken, um einen anderen Jointyp für den Join anzugeben
- Eine Tabelle über eine andere Tabelle ziehen, um die Positionen dieser Tabellen in der Joinsequenz zu wechseln
Alle Änderungen, die Sie an der vorhandenen Joinsequenz vornehmen, werden in der Übersichtstabelle unten auf der Seite aufgelistet. Diese werden vom Workflowassistenten unverzüglich geprüft. Fehler und Warnungen werden im Abschnitt Probleme unten auf der Seite angezeigt.Falls Sie alle an einer Joinsequenz vorgenommenen Änderungen entfernen wollen, klicken Sie auf Standardjoinsequenz.
- Hinweisdefinition
- Wenn Sie das Joindiagramm oder Joinsequenzdiagramm ändern, wird diesem Abschnitt eine neue Zeile hinzugefügt. Wenn der Workflowassistent Fehler im Eintrag feststellt, über eine Warnung zum Eintrag verfügt oder eine Änderung im Eintrag vorschlägt, wird auf der Registerkarte Probleme ein Anzeiger angezeigt.
Klicken Sie auf diese Registerkarte, um die Informationen anzuzeigen.
- Erstellen Sie einen Optimierungshinweis.
- Wenn Sie einen PLAN_TABLE-Hinweis oder einen Zugriffspfadhinweis auf Anweisungsebene erstellen wollen, können Sie dies tun, indem Sie Änderungen am Joindiagramm und am Joinsequenzdiagramm vornehmen. Wenn Sie das Joindiagramm oder Joinsequenzdiagramm ändern, wird eine neue Zeile zum Unterabschnitt Tabellenzugriff des Abschnitts Hinweisdefinition hinzugefügt. Wenn der Workflowassistent Fehler im Eintrag feststellt, über eine Warnung zum Eintrag verfügt oder eine Änderung im Eintrag vorschlägt, ist auf der Registerkarte Probleme ein Anzeiger zu sehen.
Klicken Sie auf diese Registerkarte, um die Informationen anzuzeigen.
- Wenn Sie einen Optimierungsparameterhinweis erstellen wollen, können Sie dies tun, indem Sie Werte im Unterabschnitt Optimierungsparameter des Abschnitts Hinweisdefinition ändern.
- Prüfen Sie den Optimierungshinweis. Wenn der Abschnitt Hinweisdefinition die gewünschten Einträge enthält, Sie alle Fehler behoben und alle Warnungen verarbeitet haben, klicken Sie auf das Symbol Hinweis überprüfen oben auf der Seite.
Passen Sie die Parameter der Anwendungsumgebung im Fenster Hinweis überprüfen an oder übernehmen Sie die Standardwerte. Informationen zu diesen Optionen erhalten Sie, wenn Sie auf das Hilfesymbol in der unteren linken Ecke des Fensters klicken oder F1 drücken. Nach dem Klicken auf Überprüfen wird das Fenster Ergebnis der Überprüfung des Hinweises geöffnet.
Wenn Sie Hilfe für dieses Fenster benötigen, klicken Sie auf das Hilfesymbol in der linken unteren Ecke oder drücken Sie F1.
- Beheben Sie Probleme, die beim Validierungsprozess gefunden wurden.
- Implementieren den Optimierungshinweis.
- Klicken Sie auf das Symbol Den Hinweis implementieren.
- Geben Sie im Fenster Hinweis implementieren Optionen wie den Namen des Hinweises und die für die Ermittlung der SQL-Anweisung zu verwendende Nummer an. Wenn Sie Hilfe für dieses Fenster benötigen, klicken Sie auf das Hilfesymbol in der linken unteren Ecke oder drücken Sie F1.
- Klicken Sie auf Implementieren.