Änderungen an DB2-Sonderregistern mit der pureQuery-Clientoptimierung verfolgen

Wenn die pureQuery-Clientoptimierung SQL-Anweisungen aus einer aktiven Anwendung erfasst, werden Warnhinweise an die Protokolldatei gesendet, wenn eine Anweisung SET SPECIAL REGISTER ausgeführt wird. Während der SQL-Erfassung werden an allgemein verwendeten Sonderregistereinstellungen vorgenommene Änderungen, die sich auf die von einer SQL-Anweisung zurückgegebenen Daten auswirken könnten, in der pureQueryXML-Datei aufgezeichnet.

Im Fall von DB2-Datenbanken kann sich die Änderung von Sonderregisterwerten auf das Verhalten der Anwendung auswirken. 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 im pureQueryXML binden und die Anwendung im statischen Modus ausführen, während der Wert auf ROUND_FLOOR gesetzt ist, werden möglicherweise andere Daten zurückgegeben, wenn die Daten vom Wert des Sonderregisters abhängen. Die Ergebnisse können auch dann anders ausfallen, wenn es keine Änderung im Anwendungscode gegeben hat.

Sonderregisterwerte mit der pureQueryXML-Clientoptimierung verfolgen und aufzeichnen

Wenn die pureQuery-Clientoptimierung eine SQL-Anweisung erfasst, während eine Anwendung aktiv ist, werden einige Sonderregisterwerte verfolgt und aufgezeichnet. Beim Zusammenführen und Konfigurieren des erfassten SQL werden die mit der SQL-Anweisung erfassten Sonderregisterinformationen zusammen mit der Anweisung abgelegt.

Es gibt die folgenden pureQuery-Kategorien für Sonderregister:

Verfolgt und aufgezeichnet
Sonderregister, die verfolgt wurden und deren Änderungen als pureQueryXML-Daten aufgezeichnet wurden. Die in der pureQueryXML-Datei gespeicherten Sonderregisterinformationen können bei der Konfiguration von pureQueryXML-Dateien mit dem Dienstprogramm Configure verwendet werden. Sie werden angezeigt, wenn Sie eine pureQueryXML-Datei in der Workbench bearbeiten. Weitere Informationen zum Dienstprogramm Configure und zu den bei der Bearbeitung einer pureQueryXML-Datei angezeigten Informationen finden Sie in den zugehörigen Links.
Nicht sicher und nicht aufgezeichnet
Diese Sonderregister werden nicht aufgezeichnet, auch wenn an ihren Werten vorgenommene Änderungen sich möglicherweise auf die von den SQL-Anweisungen zurückgegebenen Daten auswirken können. Wird eine Änderung an einem Sonderregister vorgenommen, das nicht sicher ist und nicht aufgezeichnet wurde, wird der Wert des Attributs unTrackedRegisters auf 'true' gesetzt.
Sicher und nicht aufgezeichnet
Sonderregister, die sicher sind, die aber nicht in der pureQueryXML-Datei aufgezeichnet werden. Im Allgemeinen wirken sich an diesen Sonderregistern vorgenommene Änderungen nicht auf die von SQL-Anweisungen zurückgegebenen Daten aus. So gibt zum Beispiel das Sonderregister CURRENT DEGREE den Grad der Parallelität für die Ausführung von Abfragen an, die dynamisch vom Anwendungsprozess vorbereitet werden. Andere Sonderregister, die zu dieser Kategorie gehören, sind: CURRENT PACKAGE PATH, CURRENT PACKAGESET, CURRENT CLIENT_ACCTNG, CURRENT CLIENT_APPLNAME, CURRENT CLIENT_USERID, CURRENT CLIENT_WRKSTNNAME und CURRENT DEBUG MODE.
Anmerkung: Die Sonderregister PACKAGE PATH und PACKAGE SET werden nicht aufgezeichnet, wirken sich jedoch auf die statische Ausführung aus. Wird PACKAGE SET verwendet, müssen die statischen Pakete in derselben Objektgruppe gebunden werden. Andernfalls wird während der statischen Ausführung ein Fehler -805 ausgegeben.
Die Werte der folgenden DB2-Sonderregister werden ebenfalls erfasst und mit der SQL-Anweisung in der Datei gespeichert:
  • CURRENT SCHEMA
  • CURRENT PATH
  • CURRENT PRECISION1
  • CURRRENT DECFLOAT ROUNDING MODE2
  • CURRENT SQLID3
Anmerkung:
  1. Das Sonderregister wird nur unter DB2 für z/OS unterstützt. Unter DB2 für Linux®, UNIX® und Windows® und unter DB2 für System i wird das Sonderregister nicht unterstützt.
  2. Das Sonderregister wird unter DB2 für z/OS Version 9.1 und höher und unter DB2 für Linux Windows und UNIX Version 9.5 und höher unterstützt.
  3. Unter DB2 für Linux, UNIX und Windows und unter DB2 für System i gelten CURRENT SQLID und CURRENT SCHEMA als Synonyme und können mit denselben Bindeoptionen QUALIFIER verwendet werden.

Die in der pureQueryXML-Datei gespeicherten erfassten Sonderregisterinformationen können bei der Konfiguration der pureQueryXML-Dateien mit dem Dienstprogramm Configure zum Erstellen von Anweisungsgruppen verwendet werden. Die erfassten Sonderregisterinformationen werden angezeigt, wenn Sie die pureQueryXML-Datei im pureQueryXML-Editor in der Workbench anzeigen.


Feedback