Recherche et correction de changements apportés aux plans d'accès suite au déploiement d'une application à partir d'un système de test vers un système de production

Vous pouvez déterminer si les plans d'accès pour les instructions SQL d'un système de test restent les mêmes lorsque vous déployez ces instructions SQL sur un système de production. Si l'un des plans d'accès du système de production doit être amélioré, vous pouvez optimiser les instructions SQL problématiques ou rétablir les plans d'accès utilisés sur le système de test.

Avant de commencer

Pourquoi et quand exécuter cette tâche

Au cours de cette procédure, vous créez une charge de travail de requête des instructions SQL pour une application que vous testez. Vous optimisez cette charge de travail de requête puis vous déployez l'application vers un système de production. Ensuite, sur ce système de production, vous créez une charge de travail de requête des mêmes instructions SQL. Enfin, vous comparez les plans d'accès que les instructions SQL ont utilisé sur le système de test avec les plans d'accès que les instructions utilisent sur le système de production. En cas de changements pouvant nuire aux plans d'accès du système de production, vous pouvez corriger les problèmes en créant et en optimisant une charge de travail de requête des instructions problématiques, ou en rétablissant les plans d'accès depuis le système de test.

Procédure

Pour identifier et traiter des changements effectués au niveau des plans d'accès provoqués par le déploiement d'une application depuis un système de test vers un système de production :

  1. Dans votre environnement de test, créez une charge de travail de requête des instructions SQL présentes dans votre application.
    1. Capturez les instructions SQL.
    2. Après avoir capturé des instructions SQL, cliquez sur le bouton Tout sauvegarder dans une charge de travail.
    3. Dans la fenêtre Entrer le nom et la description de la charge de travail, spécifiez des informations pour identifier la nouvelle charge de travail de requête.
    La page Gérer et optimiser les charges de travail de la section Gérer s'ouvre. La nouvelle charge de travail de requête s'affiche dans la table sur cette page. Le statut de la charge de travail de requête est CAPTURED.
  2. Exécutez l'assistant Statistiques de charge de travail et implémentez ses recommandations.
  3. Vérifiez que le cache local du catalogue système est en cours.
  4. Spécifiez la ré-explication de la charge de travail de requête lorsque vous exécutez l'assistant Index de charge de travail.
    1. Sur le côté gauche de l'assistant de flux de travail, cliquez sur l'onglet Appeler, si la section Appeler n'est pas déjà ouverte.
    2. Sur la page Exécuter les assistants Charge de travail, sélectionnez l'option Collecter à nouveau les informations EXPLAIN avant l'exécution des assistants de charge de travail.
  5. Exécutez de nouveau l'assistant Statistiques de charge de travail pour définir s'il possède des recommandations supplémentaires. Si tel est le cas, implémentez-les.
  6. Si vous avez implémenté des recommandations supplémentaires de l'assistant Statistiques de charge de travail, vérifiez que le cache local du catalogue système est en cours.
  7. Spécifiez la ré-explication de la charge de travail de requête lorsque vous exécutez l'assistant Index de charge de travail.
    1. Sur le côté gauche de l'assistant de flux de travail, cliquez sur l'onglet Appeler, si la section Appeler n'est pas déjà ouverte.
    2. Sur la page Exécuter les assistants Charge de travail, sélectionnez l'option Collecter à nouveau les informations EXPLAIN avant l'exécution des assistants de charge de travail.
  8. Exécutez l'assistant Index de charge de travail et implémentez ses recommandations.
  9. Si la charge de travail de requête est optimisée selon vos exigences de performances, déployez votre application vers votre système de production.
  10. Dans l'explorateur de source de données, connectez-vous à votre système de production.
  11. Cliquez avec le bouton droit de la souris et sélectionnez Analyser et optimiser > Démarrer l'optimisation.
  12. Créez une charge de travail de requête identique ou similaire à la charge de travail que vous avez créée sur votre système de test.
    1. Capturez les instructions SQL.
    2. Après avoir capturé des instructions SQL, cliquez sur le bouton Tout sauvegarder dans une charge de travail.
    3. Dans la fenêtre Entrer le nom et la description de la charge de travail, spécifiez des informations pour identifier la nouvelle charge de travail de requête.
    La page Gérer et optimiser les charges de travail de la section Gérer s'ouvre. La nouvelle charge de travail de requête s'affiche dans la table sur cette page. Le statut de la charge de travail de requête est CAPTURED.
  13. Explicitez la charge de travail de requête.
    Remarque : Si vous avez capturé des instructions SQL depuis les sources suivantes et que vous avez choisi d'enregistrer des informations EXPLAIN lors de la création de la charge de travail de requête, vous n'avez pas besoin d'expliciter cette dernière.
    • DB2 for Linux, UNIX, and Windows : moniteurs d'événements ACTIVITIES, tables EXPLAIN, modules, mémoire cache de package
    • DB2 for z/OS : modules et plans de catalogue, cache d'instruction dynamique
    1. Sur la page Manage Workloads (Gérer les charges de travail), sélectionnez la charge de travail de requête et sélectionnez Explain Selected Workload (Expliciter la charge de travail sélectionnée) dans la zone Plus d'actions.
    2. Dans la fenêtre Collecter des informations EXPLAIN, indiquez des valeurs facultatives pour l'environnement d'exécution des instructions SQL de la charge de travail de requête.
  14. Revenez à l'instance de l'assistant de flux de travail via laquelle vous êtes connecté au système de test. Si cette instance n'est plus ouverte, dans l'explorateur de source de données, connectez-vous au système, cliquez avec le bouton droit de la souris sur la connexion et sélectionnez Analyser et optimiser > Démarrer l'optimisation.
  15. Cliquez sur l'onglet Gérer situé à gauche de l'assistant de flux de travail.
  16. Sur la page Manage Workloads (Gérer les charges de travail), sélectionnez la charge de travail de requête que vous avez créée lors de l'étape 1.
  17. Cliquez sur le bouton Comparer.
  18. Sélectionnez l'option Compare the access plans for the selected workload with the access plans for another workload (Comparer les plans d'accès pour la charge de travail sélectionnée avec les pans d'accès pour une autre charge de travail).
  19. Dans l'assistant Compare Access Plans with Access Plans in Another Workload (Comparer les plans d'accès avec des plans d'accès d'une autre charge de travail), sélectionnez le système de production et cliquez sur Suivant.
  20. Sélectionnez la deuxième charge de travail de requête que vous avez créée et cliquez sur Suivant.
  21. Pour la charge de travail de requête du système de test et la charge de travail de requête du système de production, sélectionnez une image instantanée d'EXPLAIN à utiliser lors de la comparaison. Ensuite, cliquez sur Terminer.

Que faire ensuite

Sur la page Historique des comparaisons, cliquez deux fois sur l'entrée pour la comparaison. Sur la page Afficher les résultats de la comparaison par instantanés d'image d'EXPLAIN de charge de travail et instructions SQL, consultez la table Instructions pour rechercher des instructions comportant des différences dans les deux images instantanées d'EXPLAIN. Si vous avez besoin de partager les résultats avec d'autres personnes, sélectionnez Générer le rapport HTML de comparaison dans la zone Plus d'actions située au-dessus de la table.

Si les plans d'accès ou les coûts estimés des instructions SQL du système de production doivent être améliorés, vous pouvez créer une charge de travail de requête à partir de ces instructions. Vous pouvez ensuite optimiser la charge de travail de requête. Dans la zone Plus d'actions de la page Afficher les résultats de la comparaison par instantanés d'image d'EXPLAIN de charge de travail et instructions SQL, sélectionnez Créer une nouvelle charge de travail de requête pour l'optimisation.

Une approche différente consiste à remplacer les plans d'accès du système de production par les plans d'accès du système de test. Dans la zone Plus d'actions de la page Afficher les résultats de la comparaison par instantanés d'image d'EXPLAIN de charge de travail et instructions SQL), sélectionnez Lock Down Access Plans for All SQL Statements (Verrouiller les plans d'accès pour toutes les instructions SQL). Si vous choisissez cette approche, vous devez comprendre que les changements effectués au niveau de votre système pouvant améliorer les plans d'accès (amélioration des statistiques ou application d'une maintenance comportant des améliorations de l'optimiseur), n'affecteront pas les plans d'accès que vous avez verrouillés. Toutefois, les plans d'accès ne subiront aucun changement soudain et s'exécuteront comme prévu.


Commentaires en retour