L'assistant Organisation des tables de la charge de travail recommande la conversion des tables organisées en lignes en tables organisées en colonnes et la création de tables de dissimulation pour des tables organisées en lignes utilisées dans des requêtes analytiques.
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. 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 afficher et sauvegarder le ficher DDL permettant d'appliquer les modifications nécessaires à la conversion des tables. Vous pouvez même cliquer sur un bouton pour importer le fichier DDL dans la fonction
Convert Tables to Column Organization du client Data Studio, et modifier, exécuter ou sauvegarder le fichier DDL.
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.
Restriction : L'assistant peut recommander la création de tables MQT de dissimulation uniquement si la base de données DB2 for Linux, UNIX and Windows connectée se trouve au niveau de la version 10.5.4.
Procédure
Pour générer et manipuler les recommandations applicables à l'accélération BLU :
- Créez une charge de travail
des instructions SQL que vous souhaitez optimiser ensemble.
- 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.
- 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.
- 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.
- 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.
- 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.
- Dans la partie gauche de l'assistant de flux de travaux, sélectionnez Exécuter
les assistants de charge de travail.
- Sélectionnez l'option Collecter à nouveau les informations EXPLAIN
avant l'exécution des assistants de charge de travail.
- Cliquez sur Sélectionner les éléments à exécuter.
- 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.
- Cliquez sur l'onglet Organisation de table.
Résultats
Cette section affiche les tables qui sont recommandées ou non pour passer à une organisation en colonnes, ainsi que les tables pour lesquelles des tables de dissimulation sont recommandées.
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 : - Supposez que toutes les conversions de tables recommandées sont effectuées
et que les index sur ces tables sont supprimés.
- 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.
- 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 organisation en colonnes, pour la définition d'une table de dissimulation associée ou si elle doit rester inchangée.
- Avertissement
- Pour les tables recommandées pour la conversion, décrit les changements
qui peuvent se produire suite à celle-ci.
- Une table de dissimulation sera définie dans la table
- La recommandation consiste à définir une table de dissimulation dans la table pour améliorer les performances des requêtes analytiques. Une table de dissimulation est une table de requête matérialisée gérée par une procédure de réplication.
- 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 CHECK 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 RI seront remplacées par NOT ENFORCED.
- Il sera possible pour les données erratiques d'être insérées dans la table.
- Les index seront supprimés.
- Les index ne sont pas autorisés dans les tables organisées en colonnes.
- 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.
- Les tables de requêtes matérialisées d'actualisation différée, gérées par l'utilisateur, seront converties. Les autres tables de requêtes matérialisées seront supprimées.
- Toutes les tables de requêtes matérialisées d'actualisation différée, gérées par l'utilisateur, seront converties en organisation en colonnes lorsque la table est convertie pour passer d'une organisation en lignes à une organisation en colonnes.
- 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.
- 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.
- L'ajout d'une table de dissimulation peut accélérer l'exécution des requêtes analytiques dans la table.
- Les requêtes analytiques exécutées dans cette table sont réacheminées automatiquement vers la table de dissimulation pour tirer parti de l'accélération BLU.
- Les restrictions des tables organisées en colonnes n'autoriseront pas la conversion.
- Les types de table suivants ne peuvent pas être convertis en tables organisées
en colonnes : table de requêtes matérialisée, tables temporaires globales déclarées, tables temporaires globales
créées.
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.
- 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.
- 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.
- 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.
- La table est déjà organisée en colonne.
- Aucune conversion n'est nécessaire.
- La table comporte déjà une table de dissimulation.
- Une table de requête matérialisée qui est gérée par une réplication est déjà définie sur cette table organisée en lignes.
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.
Si vous suivez des recommandations pour créer des tables de dissimulation, vérifiez qu'InfoSphere
Change Data Capture for DB2 for Linux, UNIX and Windows est installé, qu'une instance est créée et que toutes les tables de dissimulation de la base de données sont gérées par un même abonnement.
Lorsque vous générez un graphique de plan d'accès pour une instruction SQL qui fait référence à une table organisée en colonnes ou à une table MQT de dissimulation, le graphique inclut un opérateur avec le libellé
CTQ lorsqu'il y a une transition entre un traitement organisé en colonnes et un traitement organisé en lignes. Pour plus d'informations sur l'opérateur CTQ, reportez-vous à la rubrique Nouvelles informations Explain pour les tables organisées par colonnes.