Génération et exécution de recommandations pour convertir les tables en tables organisées en colonnes

L'assistant d'organisation de table pour la charge de travail recommande de convertir les tables organisées en lignes en tables organisées en colonnes.

Avant de commencer

Pourquoi et quand exécuter cette tâche

L'assistant examine toutes les tables référencées par les instructions présentes dans une charge de travail de requête. Ses recommandations donnent lieu à la meilleure amélioration estimée des performances pour l'ensemble de la charge de travail de requête.

L'assistant présente ses analyses et justifications afin que vous puissiez voir les tables recommandées pour la conversion, ainsi que celles qui ne le sont pas. Vous pouvez voir les cardinalités des tables, le nombre d'instructions dans la charge de travail de requête qui les référencent, le coût cumulé de l'exécution des instructions qui référencent une table, les instructions elles-mêmes, etc.

Vous pouvez également afficher et sauvegarder le DDL pour implémenter les changements nécessaires à la conversion des tables.

Conseil : Exécutez cet assistant uniquement après avoir trouvé que les recommandations de l'assistant de statistiques de charge de travail, l'assistant d'index de charge de travail, ou les deux, n'amélioraient pas suffisamment les performances. Il se peut que vous puissiez atteindre les performances requises pour la charge de travail de requête en regroupant les statistiques, en créant ou en modifiant les index, ou les deux. De plus, l'assistant d'organisation de table pour la charge de travail s'appuie sur des statistiques correctes lorsqu'il génère ses recommandations.

Procédure

Pour générer et exécuter des recommandations pour convertir les tables en tables organisées en colonnes :

  1. Créez une charge de travail des instructions SQL que vous souhaitez optimiser.
    1. Capturez les instructions SQL que vous souhaitez optimiser. Voir Emplacements à partir desquels vous pouvez capturer des instructions SQL pour créer des charges de travail de requête s'exécutant sur DB2 for Linux, UNIX, and Windows.
    2. Cliquez sur le bouton Créer une charge de travail de requête à partir de toutes les instructions puis donnez à la charge de travail de requête un nom et une description quand vous y êtes invité.
    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 deux fois l'assistant de statistiques de charge de travail sur la charge de travail de requête et implémentez ses recommandations à deux reprises.
  3. Dans la section Gérer de l'assistant de flux de travaux, sélectionnez la charge de travail de requête et cliquez sur le bouton Appeler les assistants.
  4. Facultatif : Définissez les valeurs des préférences pour cet assistant pour remplacer les préférences globales. Sélectionnez Définir les options de l'assistant dans la partie gauche de la section Appeler. Ensuite, sélectionnez l'onglet Organisation de table.
  5. Dans la partie gauche de l'assistant de flux de travaux, sélectionnez Exécuter les assistants de charge de travail.
  6. Sélectionnez l'option Collecter à nouveau les informations EXPLAIN avant l'exécution des assistants de charge de travail.
  7. Cliquez sur Sélectionner les éléments à exécuter.
  8. Sélectionnez Organisation de table et cliquez sur OK. La section Consulter de l'assistant de flux de travaux s'ouvre sur la page Consulter les recommandations de l'assistant de charge de travail. Si des recommandations sont disponibles, l'onglet Organisation de table apparaît.
  9. Cliquez sur l'onglet Organisation de table.

Résultats

Cette section affiche les tables qui sont et qui ne sont pas recommandées pour la migration vers les tables organisées en colonnes.

En haut de la section se trouve une estimation de l'amélioration des performances de la totalité de la charge de travail de requête. L'assistant calcule l'amélioration estimée des performances en procédant comme suit :
  1. Supposez que toutes les conversions de tables recommandées sont effectuées et que les index sur ces tables sont supprimés.
  2. Calculez le produit des deux valeurs suivantes pour chaque instruction dans une charge de travail de requête : nombre d'exécutions * coût de l'instruction.
  3. Additionnez les produits.

Ces colonnes sont affichées dans la table en haut de cette section :

Table
Nom d'une table organisée en lignes qui est recommandée pour la conversion en table organisée en colonnes ou qui l'est pour rester telle quelle.
Créateur
Créateur de la table.
Organisation
Indique si la table est actuellement organisée en lignes ou en colonnes.
Organisation recommandée
Indique si la table est recommandée pour la conversion en table organisée en colonnes ou si elle l'est pour rester telle quelle.
Avertissement
Pour les tables recommandées pour la conversion, décrit les changements qui peuvent se produire suite à celle-ci.
Les index seront supprimés.
Les index ne sont pas autorisés dans les tables organisées en colonnes.
Le partitionnement de données sera perdu.
Vous pouvez restaurer le partitionnement de données uniquement si vous reconvertissez la table en table organisée en lignes.
Les contraintes ENFORCED RI seront remplacées par NOT ENFORCED.
Il sera possible pour les données erratiques d'être insérées dans la table.
Les contraintes ENFORCED CHECK seront remplacées par NOT ENFORCED.
Il sera possible pour les données erratiques d'être insérées dans la table.
L'espace table sera changé.
Après la conversion, la table se trouvera dans l'espace table spécifié dans les préférences pour l'assistant d'organisation de table pour la charge de travail, ou dans un espace table que l'assistant a sélectionné. Vous pouvez modifier le script de conversion pour utiliser un autre espace table.
Les tables de requêtes matérialisées seront supprimées.
Même après la suppression des tables de requêtes matérialisées, les instructions SQL pourront accéder aux données de la table plus rapidement.
Cardinalité
Nombre de lignes présentes dans la table.
Références à la table
Nombre de fois où les instructions SQL qui figurent dans la charge de travail de requête référencent la table.
Coût total cumulé
Somme des coûts liés aux unités centrales en timerons de chaque accès aux données de la table par les instructions SQL qui figurent dans la charge de travail de requête.
Instructions affectées
Nombre d'instructions SQL dans la charge de travail de requête qui référence la table.
Constatation
Explique pourquoi la table est ou n'est pas recommandée pour la conversion.
La table est déjà organisée en colonne.
Aucune conversion n'est nécessaire.
La conversion n'améliorera pas les performances.
Les performances de la charge de travail de requête ne s'amélioreront pas si la table a été convertie en table organisée en colonnes.
La conversion améliorera les performances.
Les performances de la charge de travail de requête s'amélioreront si la table a été convertie en table organisée en colonnes.
Les restrictions des tables organisées en colonnes n'autoriseront pas la conversion.
Les types de tables suivants ne peuvent pas être convertis en tables organisées en colonnes : table de requêtes matérialisée, table temporaire globale déclarée, table temporaire globale créée.

Il existe également d'autres restrictions. Par exemple, les tables avec des colonnes LOB ne peuvent pas être converties, ni les tables utilisées dans les instructions MERGE ou dans les instructions qui déclarent des curseurs. Pour obtenir l'ensemble complet de restrictions, voir la documentation pour DB2 10.5 for Linux, UNIX, and Windows ou versions ultérieures.

Les statistiques manquantes n'autorisent pas la conversion.
La table manque de statistiques ; la conversion ne peut donc pas être effectuée de manière fiable. Exécutez l'assistant de statistiques de charge de travail pour collecter des statistiques pour la charge de travail de requête, exécutez les instructions RUNSTATS que recommande l'assistant, puis réexécutez l'assistant d'organisation de table pour la charge de travail.

Ces colonnes apparaissent dans la table Instructions SQL affectées. La table répertorie toutes les instructions SQL dans la charge de travail de requête susceptibles d'être affectées par la conversion des tables répertoriées en table organisées en colonnes.

Nombre d'exécutions
Nombre de fois où l'instruction SQL est exécutée dans la charge de travail de requête.
Poids
Poids relatif de l'instruction dans la charge de travail de requête. La valeur est calculée en multipliant la valeur présente dans la colonne Coût Avant par le nombre d'exécutions, puis en divisant le produit obtenu par la valeur totale "Coût Avant" pour la charge de travail de requête.
Gain de performances estimé
Augmentation estimée des performances de l'instruction qui accède à la table sélectionnée, si la recommandation pour la conversion est implémentée.
Par exemple, un gain de performances estimé de 90,61 % signifie qu'une réduction du temps UC de 90,61 % est requise pour que l'instruction accède à la table sélectionnée.
Coût Avant
Coût de l'instruction en timerons avant la conversion de la table référencée en table organisée en colonnes.
Coût Après
Coût de l'instruction en timerons après la conversion de la table référencée en table organisée en colonnes.
Instruction SQL
Texte de l'instruction. Pour voir le texte complet de l'instruction, cliquez avec le bouton droit de la souris sur la ligne et sélectionnez Afficher l'instruction SQL.

Que faire ensuite

Evaluez les améliorations estimées des performances de la charge de travail de requête pour déterminer si elles peuvent vous aider à satisfaire à vos exigences de performances. Si vous décidez de suivre les recommandations, assurez-vous que votre base de données est sauvegardée avant d'exécuter le script que l'assistant a généré. De plus, gardez à l'esprit que les contraintes d'intégrité référentielle sur les tables seront supprimées au cours de la conversion en tables organisées en colonnes.

Retour d'informations