Vous êtes sur la page 1sur 7

Bases de Données Avancées Objectifs

A la fin de ce cours vous serez capable de


● Comprendre comment un index est créé et
maintenu
● Expliquer les différents types d'indexes
Indexes et stratégies d'indexation ● Expliquer les coûts et les avantages des
indexes
● Choisir les bonnes colonnes condidates pour
Ing Hassène FARHAT
Assistant Enseignement Supérieur Militaire l'indexation.
Académie Navale

V 0.1 Hassène FARHAT 2

Un index Structure d'un index


● Un index est utilisé pour trouver rapidement les
enregistrements, son utilisation est similaire à
celle des indexes des livres
● Indexes sont organisés généralement en arbre
B+.
● Un arbre B+ est un ensemble de noeuds
(feuilles) qui contiennent des clés et des
pointeurs.
● Le transparnt suivant donne une exemble d'rbre
B+
V 0.1 Hassène FARHAT 3 V 0.1 Hassène FARHAT 4
Structure d'un index
● Dans l'exemple précédent trois opérations de
lecture permettent d'accéder aux données.
C'est l'hauteur de l'arbre.
● Le nombre de noeuds dans un arbre dépend du
nombre d'unique clé dans la table et le nombre
d'index par noeud.
● Le nombre d'indexes par noeud dépend de la
taille de l'index.
● Il est recommendé que la taille de l'index soit la
plus minime que possible.
V 0.1 Hassène FARHAT 5 V 0.1 Hassène FARHAT 6

Caractéristiques d'un index Index unique/dupliqué


● Unique ou dupliqué : permettre une ou
plusieurs occurrences d'une valeur dans une
colonne indexée.
● Composé : un index peut être composé d'une
ou plusieurs colonnes
● Cluster : les données sur disque sont
physiquement ordonnées suivant l'index.

V 0.1 Hassène FARHAT 7 V 0.1 Hassène FARHAT 8


Index composé Index de type cluster
● Dans un index de type cluster les données sur
disque sont ordonnées dans le même ordre que
l'index.
● Un seul index de type cluster peut exister par
table;
● Lorsque un enregistrement est ajouté ou mis à
jour, l'index n'est pas mis à jour. Donc pour les
tables dynamqiues il est recommandé de re-
créer l'index cluster de temps en temps :
ALTER INDEX index-name TO CLUSTER
V 0.1 Hassène FARHAT 9 V 0.1 Hassène FARHAT 10

Index de type cluster Exemples


● CREATE INDEX ix_orders ON
orders(customer_num);
● CREATE INDEX ix_items ON
items(manu_code, stock_num);
● CREATE UNIQUE CLUSTER INDEX
ix_manufact ON manufact(manu_code);
● CREATE INDEX ix_man_stk ON
items(manu_code desc, stock_num);

V 0.1 Hassène FARHAT 11 V 0.1 Hassène FARHAT 12


Modification et suppression d'un
Le fillfactor
index
● Le paramètre fillfactor spécifié le taux de ● Suppression d'un index
remplissage d'un noeud de l'arbre B au moment DROP INDEX ix_stock;
de la création de l'index.
Nom de l'index
● Lorsque la table est à taux d'insertion élevé il ● Modification d'un index
est intéressant de diminuer le fillfactor, sinon le
mettre le plus élevé que possible. ALTER INDEX ix_man_cd TO CLUSTER
● Si le fillfactor est très faible on aura de la perte
de l'espace.
CREATE INDEX state_code_idx ON state(code)
FILLFACTOR 80;
V 0.1 Hassène FARHAT 13 V 0.1 Hassène FARHAT 14

Les avantages des indexes Coût des indexes


● Réduction du temps des recherches : accès ● Coût de stockage
indexé au lieu d'un accès en séquentiel. – un index contient une copie de chaque valeur
unique de données dans la colonne à indexer.
● Des bonnes performances au moment des tris – L'overhead (les pointeurs vers les données ...)
(les données sont d'ores et déjà triées). – Il n'est pas étonnant de trouver la taille des indexes
● Assurer l'unicité d'une valeur clé. équivalente à la taille des données
● Eviter de lire tous l'enregisrement quand notre ● Coût de traitement
requête n'a besoin que des colonnes se – Mettre à jour l'arbre d'index à chaque insertion,
trouvant dans l'index modification et/ou suppression
– Beaucoup de modifications peuvent restructurer
l'arbre B+, i.e diminuer l'efficacité de l'index
V 0.1 Hassène FARHAT 15 V 0.1 Hassène FARHAT 16
Choix des colonnes pour
Utilistion dans les jointures
l'indexation
● Les indexes sont nécessaires dans les
colonnes qui sont uniques et ne sont pas des
clés primaires.
● Fréquement utilisées dans des epressions de
filtrage.
● Fréquement utilisées dans des tris ou de
groupage.

V 0.1 Hassène FARHAT 17 V 0.1 Hassène FARHAT 18

Utilisation dans les filtres Utilisation dans le tri

V 0.1 Hassène FARHAT 19 V 0.1 Hassène FARHAT 20


Ne pas mettre un index dans les colonnes ayant
beaucoup de valeurs dupliquées Les tables volatiles

V 0.1 Hassène FARHAT 21 V 0.1 Hassène FARHAT 22

Une taille la plus petite Les indexes composés

V 0.1 Hassène FARHAT 23 V 0.1 Hassène FARHAT 24


Les mises à jour massives La table sysindexes

V 0.1 Hassène FARHAT 25 V 0.1 Hassène FARHAT 26

Bibliographie
IBM Informix Database Design and Implementation Guide (10.0)
IBM Informix Dynamic Server Performance Guide (10.0)
Informix press : indexes and indexing strategies

V 0.1 Hassène FARHAT 27