Si vous procédez souvent à des opérations de recherche sur une table dans Access, ou de tri de ses enregistrements sur un champ spécifique, vous pouvez accélérer le processus en créant un index pour le champ. Access utilise les index dans une table comme vous pouvez le faire dans un livre : pour trouver des données, Access recherche l’emplacement de celles-ci dans l’index. Dans certains cas, comme pour une clé primaire, Access crée automatiquement un index pour vous. Dans d’autres cas, vous pouvez créer un index vous-même.
Cet article présente les index, explique comment choisir les champs à indexer et comment créer, supprimer ou modifier un index. Il explique également les conditions dans lesquelles Access crée les index automatiquement.
Contenu de cet article
Remarque : Vous ne pouvez pas utiliser les méthodes décrites dans cet article pour créer un index pour une table dans une base de données web. Les performances d’une base de données web varient selon les performances de plusieurs facteurs, tels que le serveur SharePoint hébergeant la base de données.
Qu’est un index ?
Vous pouvez utiliser un index pour aider Access trouver et trier des enregistrements plus rapidement. Un index stocke l’emplacement des enregistrements sur la base des champs que vous choisissez d’indexer. Une fois Access a obtenu l’emplacement à partir de l’index, il peut extraire les données en accédant directement à l’emplacement approprié. Ainsi, pour trouver des données, l’utilisation d’un index peut être sensiblement plus rapide qu’une analyse de tous les enregistrements.
Choisir les champs à indexer
Vous pouvez créer des index basés sur un champ unique ou sur plusieurs champs. Vous trouverez probablement utile d’indexer des champs dans lesquels vous recherchez fréquemment, que vous triez, ou que vous associez à des champs d’autres tables dans le cadre de requêtes sur plusieurs table. Si les index peuvent accélérer les recherches et les requêtes, ils peuvent aussi ralentir les performances lorsque vous ajoutez ou mettez à jour des données. Lorsque vous entrez des données dans une table contenant un ou plusieurs champs indexés, Access doit mettre à jour les index chaque fois qu’un enregistrement est ajouté ou modifié. L’ajout d’enregistrements à l’aide d’une requête Ajout ou en ajoutant des enregistrements importés est également susceptible de prendre plus de temps si la table de destination contient des index.
Remarque : La clé primaire d’une table est indexée automatiquement.
Il est impossible d’indexer un champ dont le type de données est Objet OLE, Pièce jointe ou Calculé. Pour les autres champs, songez à opérer une indexation si toutes les conditions suivantes sont réunies :
-
Le type de données du champ est Texte court, Texte long, Nombre, Date/Heure, NuméroAuto, Devise, Oui/Non ou Lien hypertexte.
-
Vous envisagez de rechercher des valeurs stockées dans le champ.
-
Vous envisagez de trier des valeurs dans le champ.
-
Vous envisagez de trier plusieurs valeurs dans le champ. Si plusieurs de ces valeurs sont identiques, l’index n’accélérera pas les requêtes de manière significative.
Index multi-champ
Si vous pensez faire des recherches ou procéder à un tri de manière régulière sur au moins deux champs à la fois, vous pouvez créer un index pour cette combinaison de champs. Par exemple, si vous spécifiez souvent des critères pour les champs Fournisseur et NomProduit dans la même requête, il semble logique de créer un index multi-champ sur les deux champs.
Lorsque vous triez une table sur un index multi-champ, Access commence le tri par le premier champ défini pour l’index. Vous définissez l’ordre de tri des champs lors de la création de l’index multi-champ. S’il existe des enregistrements contenant des valeurs en double dans le premier champ, Access trie sur le deuxième champ défini pour l’index, et ainsi de suite.
Vous pouvez ajouter jusqu’à 10 champs dans un index multi-champ.
Créer un index
Pour créer un index, vous devez d’abord décider de créer un index sur champ unique ou un index multi-champ. Vous créez un index sur champ unique en définissant la propriété Indexé. La liste suivante répertorie les paramètres possibles pour la propriété Indexé.
Paramètre de la propriété Indexé |
Signification |
---|---|
Non |
Ne pas créer d’index sur ce champ (ou supprimer l’index existant) |
Oui (avec doublons) |
Créer un index sur ce champ |
Oui (sans doublon) |
Créer un index unique sur ce champ |
Si vous créez un index unique, Access ne vous autorise pas à entrer une nouvelle valeur dans le champ si celle-ci se trouve déjà dans le même champ d’un autre enregistrement. Access crée automatiquement un index unique pour les clés primaires, mais vous pouvez également décider d’empêcher les valeurs en double dans d’autres champs. Par exemple, vous pouvez créer un index unique sur un champ stockant des numéros de série afin d’empêcher que deux produits aient le même numéro de série.
Créer un index sur champ unique
-
Dans le volet de navigation, cliquez avec le bouton droit sur le nom de la table dans laquelle créer l’index, puis cliquez sur Mode Création dans le menu contextuel.
-
Cliquez sur le Nom de champ du champ à indexer.
-
Sous Propriétés du champ, cliquez sur l’onglet Général.
-
Dans la propriété Indexé, cliquez sur Oui (avec doublons) pour autoriser les doublons, ou sur Oui (sans doublon) pour créer un index unique.
-
Pour enregistrer vos modifications, cliquez sur Enregistrer dans la Barre d’outils Accès rapide ou appuyez sur Ctrl+S.
Créer un index multi-champ
Pour créer un index multi-champ pour une table, vous incluez une ligne pour chaque champ dans l’index, et n’incluez le nom de l’index que dans la première ligne. Access traite toutes les lignes comme faisant partie du même index jusqu’à ce qu’il atteigne une ligne contenant un autre nom d’index. Pour insérer une ligne, cliquez avec le bouton droit sur l’emplacement où vous voulez l’insérer, puis cliquez sur Insérer des lignes dans le menu contextuel.
-
Dans le volet de navigation, cliquez avec le bouton droit sur le nom de la table dans laquelle créer l’index, puis cliquez sur Mode Création dans le menu contextuel.
-
Sous l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Index.
La fenêtre Index s’affiche. Redimensionnez-la afin de faire apparaître quelques lignes blanches et d’afficher les propriétés d’index.
-
Dans la colonne Nom de l’index, dans la première ligne vierge, tapez un nom pour l’index. Vous pouvez nommer l’index d’après l’un des champs d’index, ou utiliser un nom différent.
-
Dans la colonne Nom du champ, cliquez sur la flèche puis sur le premier champ à utiliser pour l’index.
-
Dans la ligne suivante, laissez la colonne Nom de l’index vierge, puis dans la colonne Nom du champ, cliquez sur le second champ pour l’index. Répétez cette étape jusqu’à ce que tous les champs à inclure dans l’index soient sélectionnés.
-
Pour inverser l’ordre de tri des valeurs du champ, dans la colonne Ordre de tri de la fenêtre Index, cliquez sur Croissant ou Décroissant. L’ordre de tri pas défaut est Croissant.
-
Dans la fenêtre Index, sous Propriétés de l’index, définissez les propriétés d’index de la ligne dans la colonne Nom de l’index contenant le nom de l’index. Définissez les propriétés conformément au tableau suivant.
Étiquette
Valeur
Principal
Si Oui, l’index est la clé primaire.
Unique
Si Oui, chaque valeur de l’index doit être unique.
Ignorer Nulls
Si Oui, les enregistrements avec une valeur Null dans les champs indexés sont exclus de l’index.
-
Pour enregistrer vos modifications, cliquez sur Enregistrer dans la Barre d’outils Accès rapide, ou appuyez sur Ctrl+S.
-
Fermez la fenêtre Index.
Supprimer un index
Si vous pensez qu’un index devient inutile ou qu’il a une incidence trop importante sur les performances, vous pouvez le supprimer. Quand vous supprimez un index, vous supprimez uniquement celui-ci, pas les champs sur lesquels il est défini.
-
Dans le volet de navigation, cliquez avec le bouton droit sur le nom de la table dont vous voulez supprimer l’index, puis, dans le menu contextuel, cliquez sur Mode Création.
-
Sous l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Index.
La fenêtre Index s’affiche. Redimensionnez-la afin de faire apparaître quelques lignes blanches et d’afficher les propriétés d’index.
-
Dans la fenêtre Index, sélectionnez la ou les lignes contenant l’index à supprimer, puis appuyez sur Suppr.
-
Pour enregistrer vos modifications, cliquez sur Enregistrer dans la Barre d’outils Accès rapide, ou appuyez sur Ctrl+S.
-
Fermez la fenêtre Index.
Afficher et modifier des index
Vous pouvez décider de visualiser les index d’une table afin de mesurer leur impact sur les performances, ou de vous assurer que des champs particuliers sont indexés.
-
Dans le volet de navigation, cliquez avec le bouton droit sur le nom de la table dont vous voulez modifier l’index, puis, dans le menu contextuel, cliquez sur Mode Création.
-
Sous l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Index.
La fenêtre Index s’affiche. Redimensionnez-la afin de faire apparaître quelques lignes blanches et d’afficher les propriétés d’index.
-
Affichez et modifiez les index et propriétés d’index en fonction de vos besoins.
-
Pour enregistrer vos modifications, cliquez sur Enregistrer dans la Barre d’outils Accès rapide, ou appuyez sur Ctrl+S.
-
Fermez la fenêtre Index.
Création automatique d’index
Dans certains cas, Access crée les index à votre place. Par exemple, un index est créé automatiquement pour tous les champs que vous désignez en tant que clé primaire de la table.
Une autre source de création automatique d’index est l’option Index automatique à l’importation/création dans la boite de dialogue Options Access. Access indexe automatiquement tous les champs dont le nom commence ou se termine par les caractères indiqués dans la zone Index automatique à l’importation/création, tels que ID, clé, code ou num. Pour visualiser ou modifier le paramètre actuel, procédez comme suit :
-
Cliquez sur Fichier > Options.
-
Cliquez sur Concepteurs d’objets puis, sous Création de table, ajoutez, modifiez ou supprimer des valeurs dans la zone Index automatique à l’importation/création. Utilisez un point-virgule (;) pour séparer les valeurs.
Remarque : Si un nom de champ commence ou se termine par une valeur répertoriée dans la zone, le champ est automatiquement indexé.
-
Cliquez sur OK.
Chaque index supplémentaire entraînant un travail supplémentaire pour Access, les performances diminuent lors de l’ajout ou de la mise à jour de données. Par conséquent, vous pouvez envisager de modifier les valeurs affichées dans la zone Index automatique à l’importation/création, ou de réduire le nombre de valeurs afin de minimiser le nombre d’index créés.