> Tech > Comprendre les index builds temporaires

Comprendre les index builds temporaires

Tech - Par iTPro - Publié le 24 juin 2010
email

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

Guide de cybersécurité en milieu sensible

Guide de cybersécurité en milieu sensible

Sur fond de vulnérabilités en tout genre, les établissements hospitaliers, pharmacies, laboratoires et autres structures de soin font face à des vagues incessantes de cyberattaques. L’objectif de ce livre blanc est de permettre aux responsables informatiques ainsi qu’à l’écosystème des sous-traitants et prestataires du secteur médical de se plonger dans un état de l’art de la cybersécurité des établissements de santé. Et de faire face à la menace.

Tech - Par iTPro - Publié le 24 juin 2010