Index attributaires dans la géodatabase

ArcGIS utilise des indexes pour localiser rapidement des données. Les index attributaires permettent de localiser les enregistrements qui répondent à une requête attributaire et les index spatiaux permettent de localiser les entités qui répondent à une requête spatiale.

Les index attributaires peuvent accélérer les jointures et autres requêtes attributaires sur les tables, classes d’entités, shapefiles ou classes de relations attribuées. Un index attributaire constitue pour ArcGIS un autre moyen d’extraire les enregistrements d’une table. Pour la plupart des types de requêtes attributaires, il est plus rapide de rechercher un enregistrement avec un index que de parcourir la totalité de la table en commençant par le premier enregistrement.

Une fois que vous avez des données dans une table, une classe d’entités, un shapefile ou une classe de relations décrites par des attributs, vous pouvez créer des index attributaires pour les colonnes que vous interrogez fréquemment. Il est recommandé de créer des index sur les colonnes contenant des valeurs uniques ou quasiment uniques.

Chaque index ajouté ralentit légèrement les mises à jour apportées à la classe d’entités ou à la table. Chaque fois que vous modifiez une classe d’entités ou une table contenant un index attributaire, ArcGIS ou le système de gestion de base de données (SGBD) met à jour l’index. Évitez de créer un index sur une colonne qui est modifiée plus fréquemment qu’elle n’est interrogée ou pour les colonnes contenant peu de valeurs distinctes, car ces index pourraient être contre-productifs en termes de performance. Par exemple, si vous créez un index sur une colonne qui contient uniquement les valeurs Yes (Oui) ou No (Non), les performances des requêtes ne sont pas améliorées.

Vous pouvez créer des index attributaires à partir de la boîte de dialogue Properties (Propriétés) dans ArcGIS Pro ou à l’aide de l’outil de géotraitement Ajouter un index attributaire. Une fois un index ajouté, vous pouvez le supprimer et l’ajouter à nouveau à tout moment.

Les index attributaires peuvent être créés pour une seule ou plusieurs colonnes, ils peuvent être uniques, et pour certaines géodatabases, ils peuvent être créés en ordre croissant ou décroissant. Ce page d’aide présente brièvement ces concepts. Si vous choisissez une stratégie d’indexation pour une géodatabase d’entreprise, reportez-vous à la documentation de votre SGBD pour obtenir des informations plus détaillées.

Créer un index attributaire dans la fenêtre Catalogue

Vous pouvez créer des index attributaires pour une seule ou plusieurs colonnes dans une table, une classe d’entités, un shapefile ou une classe de relations décrites par des attributs en cliquant avec le bouton droit sur son nom dans la fenêtre Catalog (Catalogue) et en accédant à la boîte de dialogue Properties (Propriétés).

Remarque :

Lorsque vous ouvrez la table attributaire dans ArcGIS Pro, un astérisque (*) figure en regard du nom des colonnes indexées.

  1. Dans la fenêtre Catalog (Catalogue), cliquez avec le bouton droit sur la table, la classe d’entités, le shapefile ou la classe de relations décrites par des attributs pour lequel vous souhaitez créer un index et sélectionnez Properties (Propriétés).
  2. Cliquez sur l’onglet Index.

    La section Index attributaire affiche les index existants pour ce jeu de données.

    Remarque :

    Lorsque vous créez une table ou une classe d’entités dans ArcGIS, ce dernier ajoute un index unique à la colonne d’ID d’objet. L’index se nomme FDO_OBJECTID dans les géodatabases fichier et les géodatabases mobiles. Dans les géodatabases d’entreprise, l’index se nomme r_#_sde_rowid_uk. L’index est utilisé par la géodatabase pour identifier de façon unique chaque entité ou ligne et ne peut pas être supprimé.

  3. Pour ajouter un index attributaire, cliquez sur Add (Ajouter).
  4. Pour Name (Nom), saisissez le nom du nouvel index.
  5. En option, cochez la case Unique (Unique) si vos valeurs de champs sont uniques. Cochez la case Croissant pour créer un index croissant.

    Les paramètres Unique (Unique) et Ascending (Croissant) ne sont pas utilisés dans les géodatabases de fichier et peuvent rester désélectionnés.

  6. Dans la liste Fields Available (Champs disponibles), cliquez sur la colonne pour laquelle vous souhaitez créer cet index, puis sur la flèche pour déplacer la colonne vers la liste Fields selected (Champs sélectionnés).

    Pour appliquer l’index à plusieurs colonnes, répétez cette étape pour chaque colonne à indexer.

  7. Si plusieurs colonnes ont été sélectionnées, vous pouvez utiliser les flèches vers le haut et vers le bas pour modifier l’ordre des colonnes dans l’index.

    Consultez la section Index mono-colonne ou multi-colonnes ci-dessous pour déterminer l’ordre à utiliser.

  8. Cliquez sur OK pour créer l’index.
  9. Cliquez sur OK pour fermer la boîte de dialogue Propriétés.

Créer un index attributaire avec un outil de géotraitement

Le jeu d’outils Index de la boîte à outils Gestion des données fournit deux outils qui permettent de gérer les index attributaires : un pour créer un index attributaire et l’autre pour supprimer un index attributaire.

Jeu d’outils Index dans la boîte à outils Gestion des données

L’outil Ajouter un index attributaire ajoute un index mono-colonne ou multi-colonnes à une table, une classe d’entités ou une classe de relations décrites par des attributs existante.

L’outil Supprimer un index attributaire supprime un index mono-colonne ou multi-colonnes d’une table, d’une classe d’entités ou d’une classe de relations décrites par des attributs.

Noms d’index attributaires

Lorsque vous nommez un index, il est judicieux d’attribuer à l’index un nom qui reflète la table ou la colonne indexée. Toutefois, si le nom de la table indexée est modifié, votre nom d’index ne peut plus indiquer la table qui est indexée. Certaines organisations trouvent utile de donner à l’index un nom qui indique qu’il s’agit d’un index, en ajoutant par exemple IDX au début ou la fin du nom. Par exemple, un index sur une table d’adresses peut s’appeler ADRS_APK_IDX, où ADRS indique que cet index est réalisé sur la table d’adresses, APK représente la colonne indexée et IDX signale qu’il s’agit d’un index.

Tout comme les noms de table, les éléments suivants sont vrais pour les noms d’index dans les géodatabases :

  • Doivent être uniques dans la base de données
  • Doivent commencer par une lettre
  • Ne peuvent pas contenir d’espaces
  • Cannot contain spacesNe peuvent pas contenir de mots réservés

Il n’existe aucune restriction sur la manière de nommer un index attributaire dans une géodatabase fichier.

ArcGIS impose une limite de 16 caractères pour les noms d’index attributaires.

Index uniques

Si chaque valeur attributaire dans une colonne est unique, vous pouvez créer l’index comme unique. Cela réduit la durée des requêtes sur cette colonne attributaire, car la base de données peut arrêter la recherche une fois la première valeur correspondante trouvée.

En cas de définition sur plusieurs colonnes, vous pouvez créer un index unique si la combinaison des valeurs dans toutes les colonnes est unique.

Remarque :

Vous ne pouvez pas modifier une classe d’entités figurant dans un jeu de classes d’entités avec une autre classe d’entités comportant un index unique sur une colonne définie par l’utilisateur.

Index croissants ou décroissants

Lorsque vous créez un index, vous pouvez préciser s’il est croissant ou décroissant. Un index croissant est géré en ordre croissant. Par exemple, les noms de ville Athens, Berlin, London et Paris apparaissent dans cet ordre dans un index croissant, alors que dans un index décroissant, ils s’affichent dans l’ordre Paris, London, Berlin et Athens.

Dans presque tous les cas, le sens dans lequel l’index est géré ne changera quasiment rien (ou rien du tout) à la vitesse d’extraction, car pour la plupart des requêtes, les index sont parcourus aussi efficacement dans les deux sens.

Index mono-colonne ou multi-colonnes

Des index peuvent être créés pour une seule colonne ou plusieurs colonnes dans une géodatabase. Les index multi-colonnes sont utiles si vous spécifiez souvent deux ou trois colonnes simultanément dans une requête. Dans ce cas, l’index multi-colonnes peut fournir des performances de requête plus rapides que deux ou trois index distincts, un sur chaque colonne.

L’ordre dans lequel les colonnes apparaissent dans un index multi-colonnes est important. Dans un index multi-colonnes avec la colonne A précédant la colonne B, la colonne A sera utilisée pour mener la recherche initiale. En outre, un tel index sera beaucoup plus utile pour des requêtes qui impliquent la colonne A uniquement que pour des requêtes impliquant la colonne B uniquement.

La décision de créer un index multi-colonnes ou mono-colonne, ou une combinaison des deux implique des compromis, comme illustré dans l’exemple suivant.

Si vous interrogez parfois uniquement la colonne A, parfois uniquement la colonne B, et parfois les deux colonnes, vous pouvez choisir l’une des approches suivantes :

  • Créer deux index distincts sur A et B.
  • Créer un index multi-colonnes sur A et B. Cet index serait en général plus efficace pour les requêtes impliquant les deux colonnes. Pour les requêtes qui impliquent uniquement A, cet index serait plus lent qu’un index sur A uniquement. Cet index serait de peu d’utilité pour les requêtes impliquant uniquement B. Pour compenser, vous pourriez créer un index supplémentaire sur B.
  • Créez les trois index : un index sur A, un sur B et un index à plusieurs colonnes sur A et B. Cette approche est judicieuse si les trois types de requêtes sont courants et si la table est plus souvent interrogée qu’elle n’est mise à jour.