Création et déploiement des profils d'optimisation pour les instructions SQL s'exécutant sur DB2 for Linux, UNIX et Windows

Vous pouvez utiliser un profil d'optimisation pour influencer directement comment un plan d'accès est créé pour une instruction SQL. Dans ce profil, vous pouvez spécifier les index à utiliser, comment accéder aux tables référencées par l'instruction SQL, la méthode de jointure à utiliser et les autres paramètres.

Avant de commencer

Pourquoi et quand exécuter cette tâche

Un profil d'optimisation peut contenir des instructions globales, qui s'appliquent à toutes les instructions de langage de manipulation de données qui sont exécutées pendant que le profil est effectif, et il peut contenir des instructions spécifiques qui s'appliquent à des instructions de langage de manipulation de données individuelles dans un package.

Procédure

Pour ouvrir l'éditeur visuel afin de créer, valider et déployer des profils d'optimisation :

  1. Capturez l'instruction SQL que vous souhaitez optimiser. Voir Emplacements à partir desquels vous pouvez capturer une instruction SQL pour l'optimisation de requête unique.
  2. Sélectionnez l'une des instructions capturées et cliquez sur le bouton Appeler assistants et outils. La page Exécuter tous les assistants et outils d'analyse pour une requête unique de la section Appeler s'ouvre.
  3. Dans la partie gauche de l'assistant de flux de travaux, dans Requête unique, développez Avancé et sélectionnez Créer un profil d'optimisation.

Que faire ensuite

Utilisez les sections de la page Personnaliser le chemin d'accès avec un profil d'optimisation pour indiquer des consignes pour un profil d'optimisation.

Cette page contient trois sections.
Diagramme de jointure et diagramme de séquence de jointure
Cette section s'affiche dans l'angle supérieur gauche de la page.

Les diagrammes de jointure affichent en tant que noeuds les tables référencées par une instruction. Les arêtes entre les noeuds montrent les relations entre les tables. Le type de prédicat qu'une arête représente apparaît à côté de l'arête. Les prédicats peuvent être des prédicats locaux ou de jointure. Vous pouvez cliquer deux fois sur un noeud pour changer la façon dont le plan d'accès accède à la table correspondante.

Les diagrammes de séquence de jointure affichent la séquence de jointure dans le plan d'accès pour une instruction SQL.

Chaque noeud représentant une table affiche les informations suivantes :
  • Le nom de la table dans l'instruction, tel que réécrit par l'optimiseur DB2
  • Le nom qualifié complet de la table
  • La cardinalité de la table
  • Le type d'accès spécifié pour la table
Diagramme de séquence de jointure modifiable
Cette section s'affiche dans l'angle supérieur droit de la page.

Editez la séquence de jointure en changeant le type de jointure, ou en ajoutant ou supprimant des jointures. Vous pouvez également ajouter et supprimer des noeuds qui représentent des tables référencées par l'instruction SQL.

Instructions dans la section Profil d'optimisation
Cette section s'affiche dans la partie inférieure de la page.
Vous pouvez utiliser la section Instructions dans la section Profil d'optimisation pour accomplir ces tâches :
Définir des instructions pour toutes les instructions qui utilisent le profil d'optimisation
  • Activer ou désactiver l'utilisation des tables de requêtes matérialisées. Si vous activez leur utilisation, vous pouvez spécifier quelles tables de requêtes matérialisées peuvent être utilisées.
  • Activer ou désactiver la prise en considération de l'optimisation de groupe de partitions calculé. Si vous activez cette prise en considération, vous pouvez spécifier le groupe de partitions à utiliser pour l'optimiseur DB2.
  • Redéfinir le paramètre de l'option de liaison REOPT avec une valeur différente.
  • Redéfinir le paramètre de l'option de liaison DEGREE avec une valeur différente.
  • Redéfinir le paramètre de l'option de liaison QUERYOPT avec une valeur différente.
  • Active ou désactive la collecte de statistiques en temps réel. Si vous activez cette collecte, vous pouvez spécifier la durée maximale autorisée pour que l'optimiseur DB2 collecte ces statistiques. Si l'optimiseur estime que cette collecte nécessitera plus de temps, il ne l'effectue pas.
  • Activer l'utilisation de tables de requêtes matérialisées.
Définir des instructions pour l'Instruction SQL en cours
  • Redéfinir le paramètre de l'option de liaison REOPT avec une valeur différente.
  • Redéfinir le paramètre de l'option de liaison DEGREE avec une valeur différente.
  • Redéfinir le paramètre de l'option de liaison QUERYOPT avec une valeur différente.
  • Active ou désactive la collecte de statistiques en temps réel. Si vous activez cette collecte, vous pouvez spécifier la durée maximale autorisée pour que l'optimiseur DB2 collecte ces statistiques. Si l'optimiseur estime que cette collecte nécessitera plus de temps, il ne l'effectue pas.
  • Activer l'utilisation de tables de requêtes matérialisées.
Définir des instructions concernant les transformations prises en considération au cours de la phase d'optimisation de requête de réécriture, qui transforme l'instruction d'origine en une instruction optimisée sémantiquement équivalente.
  • Activer ou désactiver la transformation de réécriture de prédicat-à-jointure IN-LIST.
  • Activer ou désactiver la transformation de réécriture de prédicat-à-anti-jointure NOT-EXISTS.
  • Activer ou désactiver la transformation de réécriture du prédicat-à-anti-jointure NOT-IN.
  • Activer ou désactiver la transformation de réécriture de sous-requête-à-joindre.
Personnaliser l'accès à une table.
  • Définir une instruction d'optimisation de plan.
  • Cliquez deux fois sur la table dans le diagramme de jointure et changez le mode d'accès à la table.

Vous pouvez consulter votre profil d'optimisation pour détecter des problèmes, afin de pouvoir les corriger avant de déployer le profil.

Pour finir, vous pouvez déployer le profil d'optimisation. Le déploiement signifie l'insertion du profil d'optimisation en tant que ligne dans la table SYSTOOLS.OPT_PROFILE.

Utilisez l'option de liaison OPTPROFILE pour spécifier qu'un profil d'optimisation doit être utilisé au niveau du package ou utilisez le registre spécial CURRENT OPTIMIZATION PROFILE pour spécifier qu'un profil d'optimisation doit être utilisé au niveau de l'instruction.

Ce registre spécial contient le nom qualifié du profil d'optimisation utilisé par les instructions qui sont préparées dynamiquement pour l'optimisation. Pour les applications CLI, vous pouvez utiliser l'option de configuration client CURRENTOPTIMIZATIONPROFILE pour définir ce registre spécial pour chaque connexion.


Commentaires