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 : - 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.
- 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.
- 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.