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.
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.
Pour ouvrir l'éditeur visuel afin de créer, valider et déployer des
profils 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.