Suivi des changements apportés au registre spécial DB2 à l'aide de l'optimisation de client pureQuery

Lorsque l'optimisation de client pureQuery capture une instruction SQL à partir d'une application en cours d'exécution, des messages d'avertissement sont envoyés au fichier journal lorsqu'une instruction SET SPECIAL REGISTER est exécutée. Les changements apportés aux paramètres du registre spécial utilisé pouvant affecter les données retournées par une instruction SQL sont enregistrés dans le fichier pureQueryXML au cours de la capture SQL.

Pour les bases de données DB2, le changement des valeurs des registres spéciaux peuvent voir un impact sur le comportement de l'application. L'exemple suivant utilise le registre spécial CURRENT DECFLOAT ROUNDING MODE et part du principe que la valeur est paramétrée sur ROUND_CEILING lorsqu'une instruction SQL est capturée. Si vous associez les instructions SQL à pureQueryXML et que vous exécutez l'application en mode statique avec la valeur paramétrée sur ROUND_FLOOR, les données retournées peuvent être différentes si elles dépendent de la valeur du registre spécial. Les résultats peuvent être différents même si aucun changement n'a été apporté au code d'application.

Valeurs du registre spécial suivies et enregistrées par l'optimisation de client pureQueryXML

Lorsque l'optimisation de client pureQuery capture une instruction SQL lorsqu'une application est en cours d'exécution, elle suit et enregistre certaines valeurs du registre spécial. Lors de la fusion et de la configuration des données SQL capturées, les informations du registre spécial enregistrées avec l'instruction SQL sont conservées avec l'instruction.

Voici ci-dessous les catégories pureQuery de registres spéciaux :

Suivis et enregistrés
Registres spéciaux suivis et changements enregistrés sous forme de données pureQueryXML. Les informations de registre spécial stockées dans le fichier pureQueryXML peuvent être utilisées lors de la configuration des fichiers pureQueryXML à l'aide de l'utilitaire Configure et sont visibles lors de l'édition d'un fichier pureQueryXML dans le plan de travail. Pour plus d'informations sur l'utilitaire Configure et sur les informations visibles lors de l'édition d'un fichier pureQueryXML, voir les liens associés.
Non sécurisés et non enregistrés
Ces registres spéciaux ne sont pas enregistrés, cependant les changements apportés à leurs valeurs peuvent affecter les données retournées par les instructions SQL. Si un changement est apporté à un registre spécial non sécurisé et non enregistré, la valeur de l'attribut unTrackedRegisters est paramétrée sur true.
Sécurisés et non enregistrés
Registres spéciaux sécurisés et non enregistrés dans le fichier pureQueryXML. En général, les changements apportés à ces registres spéciaux n'affectent pas les données retournées par les instructions SQL. Par exemple, le registre spécial CURRENT DEGREE définit le degré de parallélisme de l'exécution des requêtes préparées en mode dynamique par le processus d'application. Autres registres spéciaux appartenant à cette catégorie : CURRENT PACKAGE PATH, CURRENT PACKAGESET, CURRENT CLIENT_ACCTNG, CURRENT CLIENT_APPLNAME, CURRENT CLIENT_USERID, CURRENT CLIENT_WRKSTNNAME, et CURRENT DEBUG MODE.
Remarque : Les registres spéciaux PACKAGE PATH et PACKAGE SET ne sont pas enregistrés, mais affectent l'exécution statique. Si le registre PACKAGE SET est utilisé, les modules statiques doivent être associés à la même catégorie COLLECTION, sinon une erreur -805 est émise au cours de l'exécution statique.
Les valeurs des registres spéciaux DB2 suivants sont également capturées et stockées avec l'instruction SQL dans le fichier :
  • CURRENT SCHEMA
  • CURRENT PATH
  • CURRENT PRECISION1
  • CURRRENT DECFLOAT ROUNDING MODE2
  • CURRENT SQLID3
Remarque :
  1. Le registre spécial est uniquement pris en charge par DB2 for z/OS. Registres spéciaux non pris en charge par DB2 for Linux,UNIX et Windows et par DB2 for System i.
  2. Le registre spécial est pris en charge par DB2 for z/OS version 9.1 et plus et par on DB2 for Linux Windows et UNIX version 9.5 et plus.
  3. Sur DB2 for Linux,UNIX et Windows et sur DB2 for System i, CURRENT SQLID et CURRENT SCHEMA sont utilisés comme des synonymes et peuvent être utilisés avec les mêmes options d'association QUALIFIER.

Les informations relatives au registre spécial capturées stockées dans le fichier pureQueryXML peuvent être utilisées pour créer des ensembles d'instructions lors de la configuration des fichiers pureQueryXML avec l'utilitaire Configure. Les informations de registre spécial capturées sont visibles lors de l'affichage du fichier pureQueryXML dans l'éditeur pureQueryXML du plan de travail.


Commentaires