Ajout d'autres instructions SQL à des fichiers pureQueryXML

Dans un fichier pureQueryXML, vous pouvez ajouter des instructions SQL que votre application va exécuter à la place de celles que vous avez capturées.

Pourquoi et quand exécuter cette tâche

Après capture d'instructions SQL dans un fichier pureQueryXML, il peut arriver qu'une ou plusieurs de ces instructions ne présentent pas l'efficacité escomptée par votre application. Or, dans la mesure où vous faites ce constat à un stade avancé de votre cycle de développement, vous risquez de ne plus pouvoir modifier l'application. Il vous est toutefois possible d'éditer le fichier pureQueryXML en ajoutant une instruction SQL de remplacement pour chacune des instructions insuffisamment performantes. Lorsque vous exécuterez votre application, pureQuery utilisera les nouvelles instructions SQL en lieu et place des instructions initialement capturées.

Par exemple, il peut s'avérer difficile d'exécuter une instruction SQL après avoir collecté des statistiques pour une table. Si cet incident se produit sur un système de production, un administrateur de base de données peut annuler les modifications apportées aux statistiques de la table ou demander une modification de SQL dans l'application. Avec pureQuery, l'administrateur de base de données peut renoncer à ces options et ajouter une autre instruction SQL dans le fichier pureQueryXML contenant l'instruction défaillante.

En ajoutant d'autres instructions, vous pouvez :
  • influencer un chemin d'accès (OPTIMIZE FOR 1 ROW)
  • influencer l'utilisation d'index (clause ORDER BY)
  • influencer la taille d'extraction pour les requêtes réparties (clause FETCH FIRST n ROWS ONLY, OPTIMIZE FOR n ROWS ou FOR FETCH ONLY).
  • modifier le comportement de verrouillage (clause WITH ISOLATION ou SKIP LOCKED DATA).
  • gérer les données EXPLAIN (clause QUERYNO).

Après les avoir ajoutées, vous pouvez choisir de définir ou non des accès pour les instructions SQL de remplacement. Si vous y renoncez mais voulez tout de même utiliser ces instructions, vous devez paramétrer la propriété enableDynamicSQLReplacement à TRUE lorsque vous exécutez votre application.

Vous pouvez ajouter une autre instruction pour une instruction SQL, à l'exception des deux types d'instruction suivants :

Recommandation : IBM® vous recommande fortement d'éditer les fichiers pureQueryXML en utilisant uniquement le plan de travail. Si vous éditez un fichier pureQueryXML en dehors du plan de travail, vous risquez de rendre le ficher inutilisable.

Si vous êtes dans l'obligation d'éditer un fichier pureQueryXML en dehors du plan de travail, dans la balise <statementSet> de l'ensemble d'instructions à modifier, définissez la valeur de l'attribut configureStatus sur REQUIRED, comme suit : configureStatus="REQUIRED". Puis, exécutez l'utilitaire Configure sur le fichier.

Procédure

Pour ajouter d'autres instructions, procédez comme suit :

  1. Capturez les instructions SQL dans votre application. Voir Capture des instructions SQL pour l'optimisation client.
  2. Editez le fichier pureQueryXML obtenu pour ajouter d'autres instructions.
    Restrictions :
    • Si une instruction SQL contient des marqueurs de paramètre nommés, l'instruction alternative doit comporter le même nombre de marqueurs de paramètre, lesquels doivent être classés de la même manière.
    • L'ensemble de résultats d'une autre instruction SELECT doit correspondre à celui de l'instruction SELECT d'origine.
  3. Suivez l'une de ces étapes :
    • Si vous souhaitez exécuter les autres instructions de manière statique, exécutez l'utilitaire Configure et l'utilitaire StaticBinder sur le fichier pureQueryXML, comme d'habitude.
    • Si vous souhaitez exécuter les autres instructions de manière dynamique, attribuez la valeur TRUE à la propriété enableDynamicSQLReplacement dans le fichier pdq.properties.
  4. Exécutez votre application. Voir Exécution d'applications d'API différentes de pureQuery pour l'exécution statique des instructions SQL.

Commentaires