Vous pouvez créer, valider et déployer une suggestion d'optimisation pour une instruction SQL qui s'exécute sur un sous-système DB2 for z/OS. Grâce à une suggestion d'optimisation, vous pouvez définir des critères afin d'aider l'optimiseur DB2 à sélectionner le plan d'exécution optimal pour l'instruction SQL.
Pourquoi et quand exécuter cette tâche
L'octroi de suggestions d'optimisation
à DB2 est utile dans les
situations suivantes :- Vous souhaitez assurer la cohérence des temps de réponse parmi les nouvelles liaisons
et parmi les migrations d'édition. Lorsqu'un plan ou un package est relié, le chemin d'accès est reformulé. Si la base de données ou l'application a
changé, ou si DB2 dispose d'une nouvelle fonction
qui provoque la sélection d'un plan d'accès différent, il peut être pratique
d'utiliser un ancien plan d'accès si le nouveau ne s'exécute pas
aussi bien.
- Vous souhaitez temporairement ignorer le plan d'accès choisi par DB2.
Les suggestions d'optimisation se divisent en trois catégories :
- Suggestions PLAN_TABLE
- Ce type de suggestion tente d'imposer un chemin d'accès spécifique
pour une instruction SQL émise par un identificateur d'autorisation spécifique
unique. Il utilise les lignes d'une instance PLAN_TABLE détenue par le même identificateur d'autorisation
pour mettre en application des suggestions basées sur les valeurs indiquées pour l'option de définition d'accès OPTHINT
ou le registre spécial CURRENT OPTIMIZATION HINT.
- Suggestions de chemin d'accès au niveau de l'instruction (DB2 10
for z/OS NFM uniquement)
- Dans ce type de suggestion, DB2 tente
d'utiliser les lignes de PLAN_TABLE spécifiées pour déterminer le chemin d'accès des
instructions SQL correspondantes. Vous pouvez également créer des suggestions de chemin d'accès applicables
uniquement aux instructions correspondantes à partir d'un périmètre défini.
- Suggestions de paramètres d'optimisation (DB2 10
for z/OS NFM uniquement)
- Dans ce type de suggestion, DB2 applique
des paramètres d'optimisation donnés, tels que les paramètres et options de sous-système suivants,
pour traiter toutes les instructions correspondant à la suggestion :
- REOPT (option de définition d'accès)
- STARJOIN (paramètre de sous-système)
- PARAMDEG (paramètre de sous-système) (colonne MAX_PAR_DEGREE)
- CDSSRDEF (paramètre de sous-système) (colonne DEF_CURR_DEGREE)
- SJTABLES (paramètre de sous-système)
Vous pouvez également créer des suggestions qui indiquent les paramètres d'optimisation et qui sont applicables
uniquement aux instructions correspondantes à partir d'un périmètre défini.
Vous ne pouvez pas déployer plusieurs types de suggestions simultanément.
Par contre, vous pouvez déployer séquentiellement plusieurs types de suggestions pour une instruction
SQL unique. Voir "
Coexistence des suggestions d'optimisation".
Conseil : Si vous ne savez pas quel type de suggestion
vous convient, vous pouvez définir les trois types dans l'éditeur, puis les
déployer l'une après l'autre aux fins de test.
Procédure
Pour créer, valider et déployer une suggestion d'optimisation :
- Capturez ou sélectionnez l'instruction SQL pour laquelle vous
souhaitez créer une suggestion d'optimisation.
- Si vous souhaitez travailler à partir d'une instruction SQL capturée unique,
procédez comme suit :
- 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.
- Sélectionnez les instructions et cliquez
sur le bouton Appeler les assistants et les outils. La page Exécuter tous les assistants et outils d'analyse pour une requête unique
de la section Appeler s'ouvre.
- Si vous souhaitez travailler à partir d'une instruction SQL faisant partie d'une charge de travail de requête,
procédez comme suit :
- Cliquez sur l'onglet Gérer dans la partie gauche de
l'assistant de flux de travaux.
- Sur la page Manage Workloads (Gestion des charges de travail), sélectionnez la charge de travail de requête
à laquelle l'instruction SQL appartient.
- Dans le champ More actions (Plus d'actions), sélectionnez Afficher
les instructions.
- Dans la page Afficher les instructions, cliquez avec le bouton droit
de la souris sur l'instruction SQL et sélectionnez Run Single-Query Advisors
and Tools on the Selected Statement (Exécuter les assistants Requête unique et les outils sur l'instruction sélectionnée). La page Exécuter tous les assistants et outils d'analyse pour une requête unique de la section Appeler s'ouvre.
- Dans la partie gauche de l'assistant de flux de travaux, dans
Requête unique, développez Avancé
et sélectionnez Create
Optimization Hint (Créer une suggestion d'optimisation). L'assistant de flux de travaux ouvre la page Customize Access Plan with Optimization Hint (Personnaliser le plan d'accès avec la suggestion d'optimisation) de la section Consulter.
Cette page contient trois sections :
- Diagramme de jointure
- Un diagramme de jointure affiche les informations suivantes :
- Les tables touchées par la requête, que le diagramme affiche sous forme de noeuds
- Les relations entre les tables, que le diagramme affiche sous forme de lignes entre les noeuds
et qui sont créées en fonction de l'analyse des prédicats de la requête
- Les prédicats locaux et de jointure
Cliquez deux fois sur une table pour personnaliser la manière dont la table est référencée dans le plan d'accès
de l'instruction SQL. La personnalisation s'affiche dans la
table de la section Présentation située en bas de la page. Elle n'est pas encore active. Vous
pouvez continuer à ajouter d'autres personnalisations à la suggestion d'optimisation.
- Diagramme de séquence de jointure éditable
- Un diagramme de séquence de jointure affiche la séquence de jointure de la table
pour le plan d'accès indiqué. Vous pouvez exécuter les actions suivantes :
- Supprimer des noeuds sélectionnés
- Ajouter un noeud de référence de table
- Cliquez deux fois sur une table pour personnaliser la manière dont la table est référencée dans le plan d'accès
de l'instruction SQL.
- Ajouter un noeud d'opérateur de jointure
- Cliquez deux fois sur un noeud d'opérateur de jointure pour changer la jointure pour un autre type de jointure.
- Faites glisser une table par dessus une autre table pour changer les positions de ces
tables dans la séquence de jointure.
Toutes les modifications que vous apportez à la séquence de jointure existante sont répertoriées dans la table Présentation située en bas de la page. L'assistant Flux de travaux les vérifie immédiatement. Les erreurs et les avertissements sont affichés dans la section Erreurs située en bas de la page.Si vous souhaitez supprimer toutes les modifications effectuées à une séquence de jointure, cliquez sur Default Join Sequence (Séquence de jointure par défaut).
- Définition de l'indicateur d'optimisation
- Lorsque vous apportez un changement dans le diagramme de jointure ou dans le
diagramme de séquence de jointure, une nouvelle ligne est ajoutée à cette section. Si
l'assistant de flux de travaux détecte des erreurs dans l'entrée, possède un
avertissement concernant l'entrée, ou suggère une modification de l'entrée, un
indicateur apparaît dans l'onglet Problèmes.
Cliquez sur cet onglet pour afficher les informations.
- Créez une suggestion d'optimisation.
- Si vous souhaitez créer une suggestion PLAN_ABLE ou une suggestion
de chemin d'accès au niveau de l'instruction, vous pouvez apporter des changements dans le diagramme de jointure et dans le diagramme de séquence de jointure pour y parvenir. En procédant de cette façon,
une nouvelle ligne est ajoutée à la sous-section d'accès à la table
de la section Définition de l'indicateur d'optimisation. Si
l'assistant de flux de travaux détecte des erreurs dans l'entrée, possède un
avertissement concernant l'entrée, ou suggère une modification de l'entrée, un
indicateur apparaît dans l'onglet Problèmes.
Cliquez sur cet onglet pour afficher les informations.
- Si vous souhaitez créer une suggestion de paramètre d'optimisation,
vous pouvez y parvenir en changeant les valeurs de la sous-section Paramètres d'optimisation
de la section Définition de l'indicateur d'optimisation.
- Validez la suggestion d'optimisation. Lorsque vous disposez des entrées souhaitées dans la section
Définition de l'indicateur d'optimisation, que vous avez
résolu toutes les erreurs et répondu à tous les avertissements, cliquez sur
l'icône Validez l'indicateur d'optimisation en haut de la
page.
Dans la fenêtre Validez l'indicateur d'optimisation,
personnalisez les paramètres de l'environnement d'application ou laissez les valeurs
par défaut. Pour plus d'informations sur ces options, cliquez sur l'icône d'aide
dans l'angle inférieur gauche de la fenêtre ou appuyez sur F1. Une fois que vous
avez cliqué sur Valider, la fenêtre
Result of Validating the Hint s'ouvre.
Pour obtenir une aide sur cette fenêtre, cliquez sur l'icône d'aide dans l'angle
inférieur gauche ou appuyez sur F1.
- Résolvez les éventuels problèmes détectés lors du processus de validation.
- Déployez la suggestion d'optimisation.
- Cliquez sur l'icône de déploiement de l'indicateur
d'optimisation.
- Dans la fenêtre Déployer un indicateur d'optimisation,
spécifiez les options, telles que le nom de l'indicateur d'optimisation et le
numéro à utiliser pour identifier l'instruction SQL. Pour obtenir une aide sur cette
fenêtre, cliquez sur l'icône d'aide dans l'angle inférieur gauche ou appuyez sur F1.
- Cliquez sur Déployer.