FICHE N°2 TSGERI FICHE 02 Intérêt des index 4 Sommaire I Que sont, physiquement, les index ? .......................................................................................................... 1 II À quoi servent les index ? ........................................................................................................................... 1 III La construction des index .......................................................................................................................... 2 V La gestion des index ................................................................................................................................... 3 I Que sont, physiquement, les index ? II À quoi servent les index ? Leur utilisation sera d’autant plus pertinente que la base de données sera volumineuse et située sur un serveur. Employés judicieusement, ils peuvent sensiblement améliorer le temps de réponse qui s’écoule entre le moment où on pose la requête au serveur et le moment où son résultat s’affiche sur l’écran du client. • Ils sont forcément sans doublons lorsqu’ils matérialiseront une contrainte de clé primaire ou une contrainte d’unicité. • Avec ou sans doublons, ils accélèrent la recherche par rapport à une valeur d’index. • Ils accélèrent le tri d’une table par rapport à l’index. • Dans tous les cas, l’optimiseur de requêtes du SGBDR se charge d’utiliser le meilleur index en fonction de la requête qu’il a à traiter. SEQUENCE N°1 : I Que sont, physiquement, les index ? Ce sont des tables à deux colonnes gérées par le moteur du SGBDR. Pour chaque valeur de l’index, dans la 1ere colonne, correspond, dans la 2e colonne, l’adresse physique de l’enregistrement sur le disque. L’index est construit sur un ou plusieurs champs de la table, et une table peut avoir plusieurs index. Les tables d’index sont mises à jour dynamiquement à chaque enregistrement, à chaque suppression ou à chaque modification d’un des champs sur lesquels les index sont bâtis. Elles sont toujours ordonnées selon la valeur croissante (ou décroissante) de l’index. 1 FICHE N°2 TSGERI III La construction des index Tous les SGBDR offrent des outils graphiques pour bâtir des index. Nous donnerons l’exemple d’Access. Exemple : sur chacune des tables APPARTEMENTS et PROPRIETAIRES de la base de données Neige et Soleil, deux index ont été bâtis : Et deux autres sur la table PROPRIETAIRES : Pour rechercher un élément dans un ensemble de données triées, on le compare à la valeur de la donnée qui se situe au milieu (s’il y a 1 024 éléments, ce sera la 512e). S’il est égal, on l’a trouvé, s’il est plus petit, il appartient à la partie gauche de l’ensemble, plus grand à la partie droite. Puis on raisonne de même avec la partie concernée. En continuant ainsi, les parties deviennent de plus en plus petites. Dans le cas de 1 024 éléments, on le trouve au pire après 10 dichotomies, alors qu’une recherche séquentielle aurait nécessité en moyenne 512 recherches (1 au mieux, 1 024 au pire). Cet algorithme est donc extrêmement efficace. SEQUENCE N°1 : III La construction des index IV Le principe de la recherche dichotomique 2 FICHE N°2 TSGERI Exemple : recherche du nombre 95 dans l’ensemble des 20 nombres suivants : Il existe aujourd’hui d’autres algorithmes encore plus sophistiqués et efficaces. Ils ont tous pour but d’améliorer les temps de réponse lors des requêtes sur des bases de données volumineuses. Pour être opérant, l’index doit toujours être à jour. Il ne faut en bâtir que lorsque cela est nécessaire, car trop d’index sur une table va ralentir les opérations de mise à jour dans la table, puisque tous ses index devront être mis à jour en même temps. Un index est d’autant plus utile qu’il est : – souvent utilisé ; – que le rapport entre le nombre de ses valeurs et le nombre de lignes de la table est élevé. Pour un index unique (sans doublons), ce rapport atteint le maximum de 1. Exemple : il serait superflu de bâtir un index sur le champ APT_TYPE (type d’appartement) de la table APPARTEMENTS, car s’il n’existe que 6 types pour 300 appartements, le rapport 6/300 est trop faible pour justifier la construction d’un index. La décision de la création d’index utiles découle donc de la phase d’analyse, notamment de l’examen attentif des besoins des utilisateurs pour déterminer quelles seront les requêtes les plus fréquentes. Une fois la base de données mise en place, les grands SGBDR (Oracle, SQL Server, Sybase, Informix) sont capables, dans des tables systèmes appelées tables d’audit, de faire automatiquement des statistiques sur les différentes opérations (consultation, ajout, suppression, mise à jour) effectuées sur les différentes tables. L’administrateur de la base de données sera alors capable, en étudiant ces statistiques, de créer et/ou de supprimer des index. SEQUENCE N°1 : V La gestion des index V La gestion des index 3