Einschränkungen bei der Verwendung der pureQuery-Clientoptimierung für CLI-Anwendungen

Wenn eine CLI-Anwendung für die pureQuery-Clientoptimierung aktiviert ist, gibt es gewisse Einschränkungen.

Es gibt die folgenden Einschränkungen bei der Verwendung der pureQuery-Clientoptimierung für eine CLI-Anwendung:

Unterstützung für dynamische und statische VALUES-Anweisungen
Einige VALUES-Anweisungen, die während der dynamischen SQL-Ausführung unterstützt werden, können bei statischer SQL-Ausführung nicht ausgeführt werden. Sie können dieses Problem korrigieren, indem Sie eine Anweisung VALUES wie VALUES ( CURRENT TIME, CURRENT_TEMPERATURE()... ) als SELECT CURRENT TIME, CURRENT_TEMPERATURE()... FROM SYSIBM.SYSDUMMY1 neu schreiben.
Verwendung der Funktion XMLQUERY bei statischer Ausführung von dynamischen XQuery-Anweisungen
Dynamische XQuery-Anweisungen müssen in die DB2-SQL-Skalarfunktion XMLQUERY eingeschlossen sein, damit sie statisch ausgeführt werden können. Weitere Informationen zur Verwendung von XQuery-Anweisungen mit XMLQUERY finden Sie in der Beschreibung der DB2-Funktion XMLQUERY.

Wenn Sie die Funktion XMLQUERY zur statischen Ausführung von XQuery-Anweisungen nicht verwenden, müssen Sie den Wert des Schlüsselworts allowDynamicSQL in db2cli.ini oder db2dsdriver.cfg auf TRUE setzen oder das Schlüsselwort entfernen, um den Standardwert TRUE zu verwenden.

pureQuery Runtime-Eigenschaften können während einer aktiven Datenbankverbindung nicht geändert werden
Nach der Herstellung einer Datenbankverbindung können die in einer Eigenschaftendatei angegebenen pureQuery Runtime-Eigenschaften nicht geändert werden. Sie müssen die Datenbankverbindung trennen, die Eigenschaftendatei oder Verbindungszeichenfolge aktualisieren und dann die Verbindung wiederherstellen, um die pureQuery-Eigenschaften zu ändern.
CLI-Anwendungsunterstützung von pureQueryXML-Dateien
CLI-Anwendungen, die für die pureQuery-Clientoptimierung aktiviert sind, unterstützen pureQueryXML-Dateien der Version 3. Einige pureQuery-Funktionen generieren oder verwenden pureQueryXML-Dateien der Version 4, die mit pureQueryXML-Dateien der Version 3 nicht kompatibel sind. CLI-Anwendungen geben einen Fehler zurück, wenn eine Datei der Version 4 verwendet wird. Die folgenden pureQuery-Funktionen generieren oder verwenden pureQueryXML-Dateien der Version 4:
  • Das pureQuery-Dienstprogramm GeneratePureQueryXml generiert pureQueryXML-Dateien der Version 4.
  • Beim pureQuery-Dienstprogramm Configure erfordern die Optionen -groupSQLBySpecialRegisters und -removeSQLInactiveForDays Informationen, die nur in pureQueryXML-Dateien der Version 4 verfügbar sind.
Das Modifizieren einer pureQueryXML-Datei führt möglicherweise zu nicht erwartetem Verhalten
Die manuelle Bearbeitung der Datei kann zu nicht erwartetem Verhalten führen oder eine ungültige pureQueryXML-Datei erstellen. Die einzige empfohlene Änderung ist das selektive Optimieren von Abfragen mithilfe der Funktionalität zur Ersetzung optimierter Abfragen von pureQuery Runtime.
Benannte Parametermarken werden durch die Parametermarke "?" ersetzt
Benannte Parametermarken in SQL-Anweisungen wurden in DB2 Version 9.7 eingeführt. pureQuery Runtime unterstützt benannte Parametermarken nicht. Benannte Parametermarken werden durch die Parametermarke "?" ersetzt.
Während einer Anwendungsausführung vorgenommene Änderungen an der pureQueryXML-Datei werden von pureQuery Runtime nicht erkannt
Wenn eine für die pureQuery-Clientoptimierung aktivierte Anwendung gestartet wird, werden die in der pureQueryXML-Datei angeordneten und von der Anwendung verwendeten Informationen zwischengespeichert. Die Anwendung muss erneut gestartet werden, um die pureQueryXML-Datei erneut zu laden.
Wenn für die pureQuery-Clientoptimierung aktivierte CLI-Anwendungen gleichzeitig SQL-Daten erfassen, muss jede Anwendung eine andere pureQueryXML-Datei angeben
Wenn CLI-Anwendungen gleichzeitig ausgeführt werden und sie SQL-Daten erfassen (d. h. der Wert des pureQuery-Schlüsselworts captureMode ist auf ON gesetzt), muss jede dieser Anwendungen eine andere pureQueryXML-Datei angeben. Die durch den Wert des Schlüsselworts pureQueryXml angegebene Datei muss unterschiedlich sein. Wenn Sie dieselbe pureQueryXML-Datei verwenden wollen, können die Anwendungen nicht gleichzeitig ausgeführt werden. Gleichzeitig ablaufende Anwendungen, die dieselbe pureQueryXML-Erfassungsdatei verwenden, können zu einer beschädigten pureQueryXML-Datei führen.

Sie können das Java-Dienstprogramm Merge von pureQuery verwenden, um mehrere pureQueryXML-Dateien zu einer einzigen Datei zu kombinieren.

Bei der Erfassung von SQL-Daten oder statischen Ausführung von SQL-Anweisungen ist verzögerte CLI-Vorbereitung inaktiviert.
Bei der pureQuery-Schlüsselworteinstellung captureMode=ON oder executionMode=STATIC ist verzögerte CLI-Vorbereitung inaktiviert.
Gleichzeitige statische Ausführung von SQL-Anweisungen und Erfassung von SQL-Anweisung nicht unterstützt
Die gleichzeitige Festlegung von captureMode=ON und executionMode=STATIC für dieselbe Verbindung wird nicht unterstützt.
pureQuery Runtime erfasst keine positionierten UPDATE- oder DELETE-Anweisungen
Bei einer Anwendung, die für die pureQuery-Clientoptimierung aktiviert ist, erfasst pureQuery Runtime keine positionierten UPDATE- oder DELETE-Anweisungen. Ein Beispiel hierfür ist eine Anweisung UPDATE mit der Klausel WHERE CURRENT OF. Diese SQL-Anweisungen werden dynamisch ausgeführt, wenn die Schlüsselworteinstellungen executionMode=STATIC und allowDynamicSQL=TRUE festgelegt sind.
pureQuery Runtime beschränkt statementType SET_METHOD beim Schlüsselwort capturedOnly=TRUE
Ist das Schlüsselwort capturedOnly=TRUE festgelegt, werden Anweisungen mit dem Anweisungstyp SET_METHOD durch pureQuery Runtime eingeschränkt, wenn die Anweisung sich nicht in der pureQueryXML-Datei befindet.
Änderungen an DB2-Sonderregistereinstellungen bei der Ausführung von SQL-Anweisungen können unterschiedliches Anwendungsverhalten im Vergleich zu denselben, aber statisch ausgeführten SQL-Anweisungen verursachen
Im Fall von DB2-Datenbanken kann die Änderung von Sonderregisterwerten das Verhalten der Anwendung ändern. Das folgende Beispiel verwendet das Sonderregister CURRENT DECFLOAT ROUNDING MODE und setzt voraus, dass der Wert auf ROUND_CEILING gesetzt ist, wenn eine SQL-Anweisung erfasst wird. Wenn Sie die SQL-Anweisungen in der pureQueryXML-Datei binden und die Anwendung so ausführen, dass SQL-Anweisungen statisch ausgeführt werden (über das Schlüsselwort executionMode=STATIC), und wenn der Wert des Sonderregisters auf ROUND_FLOOR gesetzt ist, werden möglicherweise andere Daten zurückgegeben, falls die Daten vom Wert des Sonderregisters abhängen. Die Ergebnisse können auch dann anders ausfallen, wenn es keine Änderung im Anwendungscode gegeben hat.
Einschränkungen beim Erstellen und Verwalten eines Repositorys
Zum Erstellen und Verwalten eines Repositorys verwenden Sie das Java-basierte pureQuery-Dienstprogramm ManageRepository.

Eine CLI-Anwendung, die für die pureQuery-Clientoptimierung aktiviert ist, kann nur pureQueryXML-Dateidaten aus einem Repository abrufen. Der Abruf von pureQuery Runtime-Konfigurationsinformationen wird nicht unterstützt.

Eine CLI-Anwendung, die für die pureQuery-Clientoptimierung aktiviert ist, kann in einem Repository gespeicherte pureQueryXML-Daten nicht aktualisieren.

Wenn Sie das Schlüsselwort Capturemode mit dem Wert ON angeben, um SQL-Daten zu erfassen, ist es nicht möglich, ein Repository und eine Laufzeitgruppe mit den Schlüsselwörtern pureQueryXmlRepository und propertiesGroupId anzugeben.

Das Schlüsselwort pureQueryXml kann nicht angegeben werden, wenn die Schlüsselwörter pureQueryXmlRepository und propertiesGroupId angegeben sind.

Wenn der Wert des Schlüsselworts repositoryRequired auf atStartup gesetzt ist und pureQuery Runtime die pureQueryXML-Datei nicht aus dem Repository abrufen kann, löst pureQuery Runtime einen Fehler aus.


Feedback