Index B-Tree et Bitmap

Index

Index B-Tree

Un index de type B-Tree est fondé sur la notion d'arbre équilibré, qui permet dans le cas général d'assurer un temps de recherche constant quelle que soit la valeur recherchée.

Index B-Tree et discrimination

Par exemple SELECT nom FROM personne WHERE genre='Femme' AND pays='France sera contre performante (R tend vers 0).

Index Bitmap

Les index Bitmap sont destinés à l'indexation de colonnes qui comportent peu de valeurs distinctes et beaucoup d'enregistrements pour chacune de ces valeurs : donc lorsque le rapport D tend vers 0.

A l'inverse des index B-Tree, les index Bitmap ne stockent pas un pointeur vers un enregistrement dans un fichier trié sur l'index, mais une valeur codée sur un bit (vrai ou faux) pour chaque valeur de la colonne indexée (2 bits pour une cardinalité 2, 3 pour une cardinalité 3, etc.) dans un fichier trié sur la clé.

De tels index optimisent la recherche relative à une question du type : "l'enregistrement appartient-il à un sous ensemble du domaine sur l'index ?".

Par exemple pour savoir si un enregistrement est de genre "Femme", il suffit de consulter un bit au lieu de comparer des chaînes.

Enfin notons que les index Bitmap peuvent être compressés et donc consomment peu d'espace disque.

Les index Bitmap sont encore plus sensibles aux modifications des données que les index B-Tree (décompression, reconstruction, re-compression).

Index B-Tree et Bitmap

La syntaxe classique crée par défaut un index de type B-Tree. Pour créer un index Bitmap le mot clé BITMAP doit être ajouté.

CREATE [BITMAP] INDEX nom_index ON TABLE nom_table (nom_attribut);
AccueilOptimisation de requêtes sous Oracle 9i > Index B-Tree et Bitmap< PrécédentSuivant >