Vom DB2-Optimierungsprogramm für Vergleichselemente (Filterfaktoren) geschätzte Selektivität überschreiben

Verwenden Sie das Feature Selektivität überschreiben, um Filterfaktoren zu überschreiben, die das DB2-Optimierungsprogramm für Vergleichselemente in SQL-Anweisungen schätzt, die unter DB2 for z/OS Version 11, Modus für neue Funktion (NFM), oder höher ausgeführt werden.

Vorbereitende Schritte

Informationen zu diesem Vorgang

Der Filterfaktor eines Vergleichselements ist eine Zahl zwischen 0 und 1, die den Anteil der Zeilen in einer Tabelle schätzt, für die das Vergleichselement wahr ist. Nehmen wir z. B. an, dass DB2 feststellen kann, dass Spalte C1 der Tabelle T nur fünf unterschiedliche Werte enthält: A, D, Q, W und X. Da keine weiteren Informationen verfügbar sind, schätzt DB2, dass ein Fünftel der Zeilen den Wert D in der Spalte C1 haben. Dann hat das Vergleichselement C1='D' den Filterfaktor von 0,2 für die Tabelle T.

Das DB2-Optimierungsprogramm kann nicht immer genaue Filterfaktoren für ein Vergleichselement oder eine Gruppe von Vergleichselementen in einer SQL-Anweisung ermitteln, selbst wenn die Statistikdaten für referenzierte Tabellen aktuell sind. Daher generiert das Optimierungsprogramm möglicherweise Zugriffspläne, die nicht optimal sind.

Beispielsweise kann das Optimierungsprogramm mit dem Vergleichselement WHERE T1.C1 > ? keine genauen Filterfaktoren während der Vorbereitungs- oder der Bindephase schätzen. Selbst wenn Histogrammstatistikdaten zu C1 erfasst wurden, kann das Optimierungsprogramm nicht wissen, welche Werte möglich sind.

Mit dem Feature Selektivität überschreiben können Sie Empfehlungen erhalten, um Werte, die das Optimierungsprogramm für Filterfaktoren schätzt, durch genauere Werte zu ersetzen. Sie können sogar selbst Werte für Filterfaktoren festlegen.

Eine Gruppe von Filterfaktoren für eine SQL-Anweisung stellen ein Selektivitätsprofil dar. Sie können das Feature Selektivität überschreiben verwenden, um Selektivitätsprofile zu überprüfen und sie zu implementieren, wenn sie fehlerfrei sind.

Einschränkung: DB2 for z/OS erlaubt zwar, dass Selektivitätsprofile mehr als eine Gruppe von Filterfaktoren enthalten, das Feature Selektivität überschreiben erstellt jedoch nur eine Gruppe pro Selektivitätsprofil.

Nachdem Sie Filterfaktoren entweder durch Annahme von Empfehlungen oder durch eigene Festlegung überschrieben haben, können Sie die Gruppe der Filterfaktoren auf mögliche Fehler überprüfen. Dann können Sie den neuen Zugriffsplan für die aktuelle SQL-Anweisung überprüfen und ihn sogar mit dem ursprünglichen Zugriffsplan vergleichen, ohne zuerst das neue Selektivitätsprofil zu implementieren. Sie können auch die Advisorfunktion für Indizes für die Anweisung ausführen. Die Advisorfunktion verwendet den neuen Zugriffsplan. Sie können dann die Empfehlungen der Advisorfunktion mit deren Empfehlungen vergleichen, die sie auf der Grundlage des ursprünglichen Zugriffsplans ausgesprochen hat.

Wenn Sie die Filterfaktoren weiter ändern wollen, können Sie dies tun, sie erneut überprüfen, erneut testen und dann implementieren.

Vorgehensweise

  1. Nach der Implementierung der Empfehlungen der Advisorfunktion für Statistikdaten kehren Sie zur Seite Advisorfunktionen für einzelne Abfragen und Analysetools ausführen des Abschnitts Aufrufen im Workflowassistenten zurück. Sie können dorthin zurückkehren, indem Sie auf die Registerkarte Aufrufen links im Workflowassistenten klicken. Wenn die Seite Advisorfunktionen für einzelne Abfragen und Analysetools ausführen nicht geöffnet wird, nachdem Sie auf die Registerkarte geklickt haben, klicken Sie auf der linken Seite des Workflowassistenten auf Advisorfunktion und Analysetools ausführen, um die Seite zu öffnen.
  2. Wählen Sie auf der linken Seite des Workflowassistenten Selektivität überschreiben aus.
  3. Zeigen Sie die formatierte SQL-Anweisung an und berechnen Sie Filterfaktoren, die als Kandidaten für die Überschreibung gekennzeichnet ist, oder ändern Sie diese manuell.

    Die SQL-Anweisung wird in einem Format angezeigt, das ihre Struktur klar darstellt. Wenn das Feature Selektivität überschreiben Vergleichselemente gefunden hat, für die das DB2-Optimierungsprogramm falsche Filterfaktoren schätzen könnte, wird ein Y neben den Teilen des Vergleichselements angezeigt, für die es Filterfaktoren gibt.

    In der Spalte Vorgeschlagener Filterfaktor werden Filterfaktoren angezeigt, die vom Feature Selektivität überschreiben empfohlen werden. Wenn Sie einen eigenen Filterfaktor angeben wollen, klicken Sie in die Zeile für den Filterfaktor und geben Sie einen Wert von 0 bis 1 an.

    Wichtig: Bevor Sie selbst Filterfaktoren festlegen, sollten Sie die Erläuterungen zu Filterfaktoren in der Dokumentation für Ihre Version von DB2 for z/OS gelesen haben.
    Nachdem Sie Filterfaktoren entweder durch Auswahl von Filterfaktoren durch das Feature Selektivität überschreiben oder durch eigene Festlegung überschrieben haben, müssen Sie das neue Selektivitätsprofil überprüfen. Wenn es keine Fehler oder Warnungen gibt, können Sie eine oder mehrere der folgenden Aktionen durchführen, um zu entscheiden, ob das Selektivitätsprofil implementiert werden soll:
    • Überprüfen Sie ein Zugriffsplandiagramm für den neuen Zugriffsplan.
    • Überprüfen Sie den neuen Zugriffsplan im Zugriffsplanexplorer.
    • Vergleichen Sie das vorherige Zugriffsplandiagramm für die Anweisung mit einem Zugriffsplandiagramm, das die neuen Filterfaktoren verwendet.
    • Führen Sie die Advisorfunktion für Indizes aus, die das Selektivitätsprofil virtuell implementiert. Die Advisorfunktion spricht Empfehlungen aus, die auf dem Selektivitätsprofil beruhen. Sie können ermitteln, ob das Selektivitätsprofil die Advisorfunktion für Indizes veranlasst, bisher für die Anweisung ausgesprochene Empfehlungen zu ändern.

    Wenn Sie entscheiden, dass das Selektivitätsprofil den Zugriffsplan ausreichend verbessert, um Ihre Leistungsziele zu erfüllen, können Sie das Selektivitätsprofil mit dem Feature Selektivität überschreiben implementieren.


Feedback