Mit einem Optimierungsprofil können Sie direkt beeinflussen, wie ein Zugriffsplan für eine SQL-Anweisung erstellt wird. Im Profil können Sie die zu verwendenden Indizes, den Zugriff auf von der SQL-Anweisung referenzierte Tabellen, die zu verwendende Joinmethode und andere Einstellungen angeben.
Vorbereitende Schritte
- Stellen Sie sicher, dass die Datenbank von DB2 for Linux, UNIX, and Windows, zu der eine Verbindung besteht, in der Version 9.7 Fixpack 2 oder höher vorliegt.
- Stellen Sie sicher, dass die Tabelle SYSTOOLS.OPT_PROFILE in der Datenbank vorhanden ist.
Anweisungen zum Erstellen dieser Tabelle finden Sie in Tabelle SYSTOOLS.OPT_PROFILE.
- Stellen Sie sicher, dass Ihre Benutzer-ID für die gespeicherte Prozedur SYSPROC.SET_PLAN_HINT über das Zugriffsrecht EXECUTE verfügt.
- Stellen Sie im Datenquellenexplorer die Verbindung zur DB2-Datenbank her, wenn die Verbindung noch nicht geöffnet ist.
- Stellen Sie sicher, dass die DB2-Datenbank, für die die SQL-Anweisung ausgeführt wird, für die Optimierung einzelner SQL-Anweisungen konfiguriert ist.
- Stellen Sie sicher, dass der lokale Cache des Systemkatalogs den aktuellen Stand hat.
Informationen zu diesem Vorgang
Ein Optimierungsprofil kann globale Richtlinien enthalten, die für alle DML-Anweisungen gelten, die ausgeführt werden, während das Profil gültig ist, sie kann aber auch bestimmte Richtlinien enthalten, die nur für einzelne DML-Anweisungen eines Pakets gelten.
Vorgehensweise
Gehen Sie wie folgt vor, um den visuellen Editor zum Erstellen, Überprüfen und Implementieren von Optimierungsprofilen zu öffnen:
- Erfassen Sie die SQL-Anweisung, die Sie optimieren wollen. Weitere Informationen finden Sie in Positionen, von denen Sie eine SQL-Anweisung für die Einzelabfragenoptimierung erfassen können.
- Wählen Sie eine der erfassten Anweisungen aus und klicken Sie auf die Schaltfläche Advisorfunktionen und Tools aufrufen.
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 Optimierungsprofil erstellen aus.
Nächste Schritte
Geben Sie über die Abschnitte der Seite Zugriffsplan mit einem Optimierungsprofil anpassen Richtlinien für ein Optimierungsprofil an.
Diese Seite besteht aus drei Abschnitten.
- Joindiagramm und Joinsequenzdiagramm
- Dieser Abschnitt wird in der linken oberen Ecke der Seite angezeigt.
Joindiagramme zeigen die Tabellen, auf die eine Anweisung verweist als Knoten an.
Kanten zwischen den Knoten zeigen die Beziehungen zwischen den Tabellen an.
Der Vergleichselementtyp, den eine Kante darstellt, wird neben der Kante angezeigt. Ein Vergleichselement kann ein lokales Vergleichselement oder ein Joinvergleichselement sein. Sie können doppelt auf einen Knoten klicken, um zu ändern, wie der Zugriffsplan auf die entsprechende Tabelle zugreift.
Joinsequenzdiagramme zeigen die Joinsequenz im Zugriffsplan für eine SQL-Anweisung an.
Jeder Knoten, der eine Tabelle darstellt, zeigt die folgenden Informationen an:
- Den Namen der Tabelle in der Anweisung, wie er vom DB2-Optimierungsprogramm neu geschrieben wurde
- Den vollständig qualifizierten Tabellennamen
- Die Kardinalität der Tabelle
- Den für die Tabelle angegebenen Zugriffstyp
- Bearbeitbares Joinsequenzdiagramm
- Dieser Abschnitt wird in der rechten oberen Ecke der Seite angezeigt.
Bearbeiten Sie die Joinsequenz, indem Sie den Typ der Joins ändern oder indem Sie Joins hinzufügen oder löschen. Sie können auch Knoten, die von SQL-Anweisungen referenzierte Tabellen darstellen, hinzufügen oder löschen.
- Richtlinie im Optimierungsprofil
- Dieser Abschnitt wird im unteren Teil der Seite angezeigt.
Im Abschnitt
Richtlinie im Optimierungsprofil können Sie die folgenden Tasks vervollständigen:
- Richtlinien für alle Anweisungen, die das Optimierungsprofil verwenden, festlegen
- Verwendung von MQTs aktivieren oder inaktivieren. Wenn Sie die Verwendung vom MQTs aktivieren, können Sie angeben, welche MQTs für die Verwendung berücksichtigt werden sollen.
- Berücksichtigung der Rechenpartitionsgruppenoptimierung aktivieren oder inaktivieren. Wenn Sie diese Berücksichtigung aktivieren, können Sie angeben, welche partitionierte Gruppe für das DB2-Optimierungsprogramm berücksichtigt werden soll.
- Einstellungen der Bindeoption REOPT mit einem anderen Wert überschreiben.
- Einstellungen der Bindeoption DEGREE mit einem anderen Wert überschreiben.
- Einstellungen der Bindeoption QUERYOPT mit einem anderen Wert überschreiben.
- Erfassung von Echtzeit-Statistikdaten aktivieren oder inaktivieren. Wenn Sie diese Erfassung aktivieren, können Sie die Höchstdauer für das Erfassen dieser Statistikdaten durch das DB2-Optimierungsprogramm angeben. Wenn das Optimierungsprogramm davon ausgeht, dass für das Erfassen dieser Daten mehr Zeit benötigt wird, werden die Daten nicht erfasst.
- MQT-Umsetzung aktivieren.
- Richtlinien für die aktuelle SQL-Anweisung festlegen
- Einstellungen der Bindeoption REOPT mit einem anderen Wert überschreiben.
- Einstellungen der Bindeoption DEGREE mit einem anderen Wert überschreiben.
- Einstellungen der Bindeoption QUERYOPT mit einem anderen Wert überschreiben.
- Erfassung von Echtzeit-Statistikdaten aktivieren oder inaktivieren. Wenn Sie diese Erfassung aktivieren, können Sie die Höchstdauer für das Erfassen dieser Statistikdaten durch das DB2-Optimierungsprogramm angeben. Wenn das Optimierungsprogramm davon ausgeht, dass für das Erfassen dieser Daten mehr Zeit benötigt wird, werden die Daten nicht erfasst.
- MQT-Umsetzung aktivieren.
- Legen Sie Richtlinien fest, die sich auf die Umsetzungen auswirken, die während der Optimierungsphase der Abfrageneuerstellung berücksichtigt werden. In dieser Phase wird die Originalanweisung in eine semantisch entsprechende, optimierte Anweisung umgesetzt.
- Umsetzung von IN-LIST-Vergleichselement zu Join aktivieren oder inaktivieren.
- Umsetzung von NOT-EXISTS-Vergleichselement zu Anti-Join aktivieren oder inaktivieren.
- Umsetzung von NOT-IN-Vergleichselement zu Anti-Join aktivieren oder inaktivieren.
- Umsetzung von Unterabfrage zu Join aktivieren oder inaktivieren.
- Zugriff auf Tabelle anpassen
- Legen Sie eine Planoptimierungsrichtlinie fest.
- Klicken Sie doppelt auf die Tabelle im Joindiagramm und ändern Sie die Art des Zugriffs auf die Tabelle.
Sie können Ihr Optimierungsprofil auf Probleme prüfen, sodass Sie diese beheben können, bevor Sie das Profil implementieren.
Schließlich können Sie das Optimierungsprofil implementieren. Bei der Implementierung wird das Optimierungsprofil als eine Zeile in die Tabelle SYSTOOLS.OPT_PROFILE eingefügt.
Mit der Bindeoption OPTPROFILE geben Sie an, dass ein Optimierungsprofil auf Paketebene verwendet werden soll und mit dem Sonderregister CURRENT OPTIMIZATION PROFILE geben Sie an, dass ein Optimierungsprofil auf Anweisungsebene verwendet werden soll.
Das Sonderregister enthält den qualifizierten Namen des Optimierungsprofils, das von den Anweisungen verwendet wird, die dynamisch für die Optimierung vorbereitet werden. Für CLI-Anwendungen können Sie die Clientkonfigurationsoption CURRENTOPTIMIZATIONPROFILE verwenden, um das Sonderregister für jede Verbindung festzulegen.