Alternative Anweisungen zu Dateien im pureQueryXML-Editor 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:

Vorgehensweise

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

  1. Klicken Sie mit der rechten Maustaste auf die Anweisung, die während der Ausführung durch die alternative Anweisung ersetzt wird, und wählen Sie Anweisung bearbeiten aus.
  2. Wählen Sie in dem oben im Editor angezeigten Feld Standardschema den Namen des Schemas aus, das für nicht qualifizierte Verweise auf Datenbankobjekte in SQL-Anweisungen verwendet werden soll, die Sie hinzufügen oder bearbeiten, oder geben Sie den Namen des Schemas ein. Wenn SQL-Anweisungen auf Datenbankobjekte verweisen sollen, die sich in anderen Schemata befinden, müssen Sie die Namen der Objekte mit den Namen der entsprechenden Schemata qualifizieren.
    Achtung: Das Feld Standardschema gilt für alle SQL-Anweisungen in der aktuellen Anweisungsgruppe.
  3. Ist eine DB2-Datenquelle Ihrem Java-Projekt zugeordnet, geben Sie in das Feld Standardpfad, das oben im Editor angezeigt wird, den SQL-Pfad ein, der zum Auflösen von Funktionsreferenzen und Datentypenreferenzen in den SQL-Anweisungen verwendet werden soll, die Sie gerade hinzufügen oder bearbeiten. Mit diesem Wert können außerdem Referenzen für gespeicherte Prozeduren in CALL-Anweisungen aufgelöst werden.

    Geben Sie den Standardpfad als Liste an, die einen einzelnen Schemanamen oder mehrere, durch Kommata getrennte Schemanamen enthält. Optional können Sie einen Schemanamen in Anführungszeichen einschließen, damit die Groß-/Kleinschreibung beibehalten wird. Beispiel: FERMAT, "McDrw #8", SYSIBM.

    Achtung: Das Feld Standardpfad gilt für alle SQL-Anweisungen in der aktuellen Anweisungsgruppe.
  4. Fügen Sie die alternative Anweisung ein oder geben Sie sie ein.

    Tipp: Mit dem Vergleichseditor können Sie die alternative Anweisung mit der Originalanweisung vergleichen. Wählen Sie beide Anweisungen aus, klicken Sie mit der rechten Maustaste darauf und wählen Sie Vergleichen aus.

    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.
  5. Drücken Sie die Eingabetaste, nachdem Sie die alternative Anweisung hinzugefügt oder bearbeitet haben. Der Editor überprüft die neue Anweisung auf Kompatibilität mit der vorherigen Anweisung.

    Wenn die Ersatzanweisung kompatibel ist, können Sie entscheiden, ob Sie sie statisch oder dynamisch ausführen wollen.

    • Wenn Sie die Anweisung statisch ausführen wollen und Sie für die Ausführung Ihrer Anwendung executionMode auf STATIC gesetzt haben, wählen Sie das Kontrollkästchen Binden aus, das sich daneben befindet. Die Anweisung wird dem DB2-Paket hinzugefügt, das Sie beim Binden der pureQueryXML-Datei aus der Anweisungsgruppe erstellen.
    • Wenn Sie die Anweisung dynamisch ausführen wollen, obwohl Sie für die Ausführung Ihrer Anwendung executionMode auf STATIC gesetzt haben, wählen Sie das Kontrollkästchen Binden, das sich daneben befindet, nicht aus. Vergessen Sie nicht, vor dem Ausführen Ihrer Anwendung die Clientoptimierungseigenschaft enableDynamicSQLReplacement auf TRUE zu setzen.

Feedback