L'Optimizer construira un index temporaire uniquement pour satisfaire les Join, Grouping et/ou Ordering spécifiés dans la requête. Il ne construira jamais un index à seule fin de sélectionner des données. Pour construire un index, DB2 doit traiter tous les enregistrements de la table. Il serait moins coûteux de sélectionner simplement
Comprendre les index builds temporaires

les enregistrements au fur et à mesure que la table est balayée.
DB2 peut créer un index à partir
d’un index existant. C’est moins coûteux
que de traiter toute la table physique.
Toutefois, dans ce cas, les index
builds temporaires ne conviennent pas
pour des transactions fréquentes.
Il faut bien voir que les index builds
sont de type parallèle. Si SMP est installé
et activé, l’Optimizer peut se pencher
vers les index builds pour bénéficier
de multiples tâches. Mais ce choix
peut se traduire par une excessive utilisation
des ressources de CPU et par
un débit réduit, comme c’était le cas
ici.
Pendant l’opération d’optimisation,
l’Optimizer établit un coût par défaut
pour mettre en oeuvre la requête
puis essaie de trouver une méthode
moins chère en analysant les index disponibles.
L’Optimizer choisit des index
ayant des colonnes appartenant aux
critères locaux de sélection, de jointure,
de groupage ou de classement
précisés dans la requête. La sélection
locale fait référence aux prédicats de
sélection contenus dans la clause
WHERE qui ne sont pas utilisés à des
fins de jointure.
Si l’Optimizer ne trouve pas d’index
satisfaisant aux critères de sélection,
il peut en suggérer un pour des
raisons de performances. Les colonnes
suggérées pour l’index sont fondées
sur la sélection seulement et ne satisfont
pas aux exigences de jointure, de
groupage, ou de classement. Ainsi,
l’instruction SQL SELECT dans l’instruction
DECLARE CURSOR de la figure
4 peut aboutir à un index suggéré
pour les colonnes YEAR et MONTH
seulement. La colonne QUANTITY ne
figurerait pas dans la liste des champs
clé suggérés.
En créant l’advised index, on aide
l’Optimizer de deux manières :
1. L’index fournit des statistiques utiles
pour l’estimation des coûts.
2. L’index peut être utilisé pour mettre
en oeuvre la requête.
Il peut n’y avoir aucune indication
qu’un index a été déjà utilisé dans le
seul but de fournir des statistiques.
C’est important à considérer avant de
supprimer un index sur le critère de sa
dernière date d’utilisation.
Pour mettre en oeuvre la requête
dans le programme SQL_SERVER,
l’Optimizer a utilisé un index existant
pour sélectionner les enregistrements
qui satisfont à la sélection locale (YEAR
= 1998 et MONTH = 6). Il a ensuite
utilisé ces enregistrements sélectionnés
pour construire un index temporaire
satisfaisant le classement (QUANTITY
DESC).
Téléchargez cette ressource

État des lieux de la sécurité cloud-native
L’État des lieux de la sécurité cloud-native vous offre une analyse complète des problématiques, des tendances et des priorités qui sous-tendent les pratiques de sécurité cloud-native dans le monde entier. Une lecture indispensable pour renforcer votre stratégie de sécurité dans le cloud. Une mine d’infos exclusives pour élaborer votre stratégie de sécurité cloud-native.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les PME attendent un meilleur accès aux données d’émissions de la part des fournisseurs
- Fraude & IA : Dr Jekyll vs. Mr Hyde, qui l’emporte ?
- Gestion du cycle de vie des outils de cyberdéfense : un levier de performance pour les entreprises
- Top 6 du Cyber Benchmark Wavestone 2025
- La voix met le clavier au placard : une mutation incontournable pour les entreprises
