Alternative SQL-Anweisungen zu pureQueryXML-Dateien hinzufügen

In einer pureQueryXML-Datei können Sie SQL-Anweisungen für Ihre Anwendung hinzufügen, die anstelle von erfassten Anweisungen ausgeführt werden sollen.

Informationen zu diesem Vorgang

Nachdem Sie SQL-Anweisungen in einer pureQueryXML-Datei erfasst haben, stellt sich möglicherweise heraus, dass bestimmte Anweisungen nicht die für Ihre Anwendung erforderliche Leistung erbringen. Da Sie dies aber erst spät in Ihrem Entwicklungszyklus feststellen, ist das Ändern Ihrer Anwendung unter Umständen nicht mehr möglich. Sie können die pureQueryXML-Datei bearbeiten, indem Sie eine alternative SQL-Anweisung für jede SQL-Anweisung hinzufügen, die nicht die gewünschte Leistung erbringt. Wenn Sie Ihre Anwendung ausführen, verwendet pureQuery die alternativen SQL-Anweisungen statt der ursprünglich von Ihnen erfassten SQL-Anweisungen.

So kann z. B. eine SQL-Anweisung eine schlechte Leistung erbringen, nachdem Sie angefangen haben, Statistikdaten für eine Tabelle zu erfassen. Tritt dieses Problem in einem Produktionssystem auf, muss möglicherweise der Datenbankadministrator die Änderungen an der Tabellenstatistik zurücknehmen oder eine SQL-Änderung in der Anwendung anfordern. Mit pureQuery kann der Datenbankadministrator diese Optionen übergehen und einfach eine alternative SQL-Anweisung zu der pureQueryXML-Datei hinzufügen, in der die Anweisung mit der schlechten Leistung vorhanden ist.

Durch das Hinzufügen alternativer Anweisungen haben Sie die folgenden Möglichkeiten:
  • Beeinflussen eines Zugriffspfads, indem Sie OPTIMIZE FOR 1 ROW hinzufügen.
  • Beeinflussen der Indexverwendung, indem Sie eine Klausel ORDER BY hinzufügen.
  • Beeinflussen des Abrufumfangs für dezentrale Abfragen, indem Sie eine Klausel FETCH FIRST n ROWS ONLY, eine Klausel OPTIMIZE FOR n ROWS oder eine Klausel FOR FETCH ONLY hinzufügen.
  • Ändern des Sperrverhaltens mit einer Klausel WITH ISOLATION oder einer Klausel SKIP LOCKED DATA.
  • Verwalten von EXPLAIN-Daten mit einer Klausel QUERYNO.

Sie können auswählen, ob die alternativen SQL-Anweisungen gebunden werden sollen, nachdem sie hinzugefügt wurden. Wenn Sie sie nicht binden, aber dennoch verwenden wollen, müssen Sie für die Eigenschaft enableDynamicSQLReplacement den Wert TRUE festlegen, wenn Sie Ihre Anwendung ausführen.

Sie können jeder SQL-Anweisung eine alternative Anweisung hinzufügen, außer wenn sie den beiden folgenden Typen angehört:

Empfehlung: IBM® empfiehlt dringend, pureQueryXML-Dateien nur über die Workbench zu bearbeiten. Wenn Sie eine pureQueryXML-Datei außerhalb der Workbench bearbeiten, besteht das Risiko, dass die Datei unbrauchbar wird.

Wenn Sie eine pureQueryXML-Datei außerhalb der Workbench bearbeiten müssen, setzen Sie im Tag <statementSet> der Anweisungsgruppe, in der die Bearbeitung vorgenommen wird, den Wert des Attributs configureStatus auf REQUIRED, wie nachfolgend gezeigt: configureStatus="REQUIRED" Führen Sie danach das Dienstprogramm Configure für die Datei aus.

Vorgehensweise

Gehen Sie wie folgt vor, um alternative Anweisungen hinzuzufügen:

  1. Erfassen Sie die SQL-Anweisungen in Ihrer Anwendung. Siehe SQL-Anweisungen für Clientoptimierung erfassen.
  2. Bearbeiten Sie die daraus entstandene pureQueryXML-Datei, indem Sie alternative Anweisungen hinzufügen.
    Einschränkungen:
    • Wenn eine SQL-Anweisung benannte Parametermarken enthält, muss die alternative Anweisung dieselbe Anzahl an Parametermarken enthalten und die Parametermarken müssen in derselben Reihenfolge vorhanden sein.
    • Die Ergebnismenge einer alternativen Anweisung SELECT muss mit der Ergebnismenge der ursprünglichen Anweisung SELECT übereinstimmen.
  3. Führen Sie einen dieser Schritte aus:
    • Wenn Sie die alternativen Anweisungen statisch ausführen wollen, führen Sie das Dienstprogramm Configure und das Dienstprogramm StaticBinder ganz normal für die pureQueryXML-Datei aus.
    • Wenn Sie die alternativen Anweisungen dynamisch ausführen wollen, setzen Sie die Eigenschaft enableDynamicSQLReplacement in der Datei pdq.properties auf TRUE.
  4. Führen Sie Ihre Anwendung aus. Siehe Nicht-pureQuery-API-Anwendungen so ausführen, dass SQL-Anweisungen statisch ausgeführt werden.

Feedback