Remplacement de la sélection (facteurs de filtrage) estimée par l'optimiseur DB2 pour les prédicats

Utilisez la fonction Remplacer la sélection pour substituer les facteurs de filtrage estimés par l'optimiseur DB2 pour les prédicats des instructions SQL qui s'exécutent sur le mode nouvelles fonctions DB2 for z/OS, Version 11 ou ultérieure.

Avant de commencer

Pourquoi et quand exécuter cette tâche

Le facteur de filtrage d'un prédicat est un nombre entre 0 et 1 qui estime la proportion de lignes d'une table pour laquelle le prédicat est vrai. Ainsi, supposez que DB2 puisse déterminer que la colonne C1 de la table T ne contient que cinq valeurs distinctes : A, D, Q, W et X. En l'absence d'autres informations, DB2 estime qu'un cinquième des lignes comportent la valeur D dans la colonne C1. Donc, le prédicat C1="D" a un facteur de filtrage de 0,2 pour la table T.

L'optimiseur DB2 n'est pas toujours en mesure de déterminer des facteurs de filtre précis pour un prédicat ou un ensemble de prédicats figurant dans une instruction SQL, même quand les tables référencées sont à jour. Le résultat est que l'optimiseur génère des plans d'accès qui sont loin d'être optimaux.

Ainsi, le prédicat WHERE T1.C1 > ? ne permet pas à l'optimiseur d'estimer le facteur de filtrage exact durant les phases PREPARE ou BIND ; même si les statistiques d'histogramme ont été collectées en C1, l'optimiseur ne peut pas savoir quelles valeurs sont possibles.

Avec la fonction Remplacer la sélection, vous obtenez des recommandations pour remplacer les valeurs estimées par l'optimiseur pour les facteurs de filtrage par des valeurs plus justes. Vous pouvez même définir vous même un ensemble de facteurs de filtrage.

Un ensemble de facteurs de filtrage pour une instruction SQL constitue un profil de sélection. La fonction Remplacer la sélection vous permet de valider les profils de sélection et de les déployer, s'ils ne comportent pas d'erreurs.

Restriction : Bien que DB2 for z/OS autorise les profils de sélection à contenir plusieurs jeux de facteurs de filtrage, la fonction Remplacer la sélection ne crée qu'un seul jeu par profil de sélection.

Une fois que vous avez remplacé les facteurs de filtrage, en acceptant les recommandations ou en les définissant vous-même, vous pouvez vérifier l'ensemble de facteurs de filtrage pour rechercher les erreurs potentielles. Vous analysez ensuite le nouveau plan d'accès pour l'instruction SQL actuelle et le comparez même au plan d'accès d'origine, sans déployer d'abord le nouveau profil de sélectivité. Vous pouvez aussi exécuter l'assistant Index sur l'instruction ; l'assistant utilisera le nouveau plan d'accès. Vous comparez ensuite les recommandations de l'assistant aux recommandations qu'il a données à partir du plan d'accès d'origine.

Si vous voulez modifier encore plus les facteurs de filtrage, vous pouvez le faire, puis vous les validez et les testez à nouveau et les redéployez.

Procédure

  1. Après implémentation des recommandations de l'assistant Statistiques, revenez à la page Exécuter les assistants et outils d'analyse pour une requête unique de la section Appeler de l'assistant de flux de travaux. Vous pouvez y retourner en cliquant sur l'onglet Appeler sur le côté gauche de l'assistant de flux de travaux. Si la page Exécuter les assistants et outils d'analyse pour une requête unique ne s'ouvre pas après que vous ayez cliqué sur l'onglet, cliquez sur Exécutez les assistants et outils d'analyse dans la partie gauche de l'assistant de flux de travaux pour ouvrir la page.
  2. Sélectionnez Remplacer la sélection dans la partie gauche de l'assistant de flux de travaux.
  3. Affichez l'instruction SQL formatée, et calculez ou changez manuellement les facteurs de filtrage qui sont marqués comme candidats au remplacement.

    L'instruction SQL apparaît dans un format qui montre clairement sa structure. Si la fonction Remplacer la sélection trouve un prédicat pour lequel l'optimiseur DB2 risque d'estimer incorrectement les facteurs de filtrage, un Y apparaît à côté des portions du prédicat pour lesquelles il existe des facteurs de filtrage.

    Dans la colonne Facteur de filtrage proposé apparaissent tous les facteurs de filtrage recommandés par la fonction Remplacer la sélection. Si vous voulez spécifier votre propre facteur de filtrage, cliquez dans la ligne relative au facteur de filtrage et spécifiez une valeur de 0 à 1.

    Important : Avant de définir vous-même des facteurs de filtrage, prenez soin de lire les informations qui les concernent dans la documentation de votre version de DB2 for z/OS.
    Après remplacement des facteurs de filtrage, en laissant la fonction Remplacer la sélection choisir les facteurs de filtrage ou en définissant les facteurs de filtrage vous-même, validez le nouveau profil de sélection. S'il n'y a pas d'erreurs ou d'avertissements, vous pouvez effectuer l'une ou plusieurs des actions suivantes pour décider si vous voulez déployer ou non le profil de sélection :
    • Consultez un graphique de plan d'accès pour le nouveau plan d'accès.
    • Analysez le nouveau plan d'accès dans l'explorateur de plan d'accès.
    • Comparez le graphique de plan d'accès précédent pour l'instruction avec un graphique de plan d'accès utilisant les nouveaux facteurs de filtrage.
    • Exécutez l'assistant Index, qui provoque le déploiement virtuel du profil de sélection. L'assistant effectue des recommandations qui reposent sur le profil de sélection. Vous pouvez découvrir si le profil de sélection a pour effet de faire modifier par l'assistant Index les recommandations qu'il a données précédemment pour l'instruction.

    Si vous décidez que le profil de sélection améliore suffisamment le plan d'accès pour répondre à vos objectifs de performance, vous pouvez utiliser la fonction Remplacer la sélection pour déployer le profil de sélection.


Feedback