Les index B-tree

Un premier article concernant les index nous fait part des avantages de l'indexation ; voyons à présent les particularités des index B-tree (index par défaut).

Tout d'abord, un index B-tree est un index stocké sous forme d'arbre (tree), cet arbre est ordonné et équilibré (profondeur homogène quelque soit la feuille) ; il peut avoir 2, 3 voire plus de niveaux (profondeur de branche).
La recherche consiste en la détermination de l'intervalle pour connaître le niveau inférieur et ainsi de suite jusqu'à atteindre la feuille qui stockera, prés de sa valeur, le rowid du ou des tuple(s) recherché(s).

Le fonctionnement même des index B-tree ne permet pas une recherche sur une absence de valeur (NULL), si l'index existe sur une colonne, il ne sera pas utilisé lors de la recherche des null.

L'ordre des colonnes a-t-il une importance, l'index est-il utilisé lorsqu'une recherche ne porte que sur la seconde colonne ?
La réponse à ces questions peut être la même : oui ou peut-être.
Oui si la version d'Oracle utilisée est supérieure à la 9i ; en effet, à partir de cette version, Oracle a introduit une recherche de données avec un nouveau plan d'exécution, à savoir index skip scan. Celui-ci permet une recherche sans s'occuper de la première colonne.
Mais oui également à la question l'ordre a-t-il une importance car ce plan d'exécution n'est pas aussi performant qu'un index range scan ; en effet, en interne, il semblerait qu'oracle fait une concaténation de toutes les requêtes répondant au critère de la seconde colonne.




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories