Disponible avec une licence Standard ou Advanced.
Les index attributaires peuvent accélérer les requêtes attributaires sur les classes d'entités et les tables. 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 classe d'entités ou une table, créez des index attributaires pour les champs que vous interrogez fréquemment. Créez uniquement les index dont vous avez vraiment besoin, car chaque index ajouté ralentit légèrement les mises à jour apportées à la classe d'entités. Chaque fois que vous modifiez la classe d'entités, ArcGIS doit également mettre à jour les index. Si vous devez modifier fréquemment un champ, évitez de créer un index pour ce dernier dans la mesure du possible. Une fois un index ajouté, vous pouvez le supprimer et le rajouter à tout moment.
Les index attributaires peuvent être créés de différentes façons. Ils peuvent être créés pour un seul ou plusieurs champs, ils peuvent être uniques, et pour certaines géodatabases, ils peuvent être créés en ordre croissant ou décroissant. Cette rubrique constitue uniquement une brève introduction pour ces concepts. Si vous choisissez une stratégie d'indexation pour une géodatabase, reportez-vous à la documentation de votre SGBD pour obtenir des informations plus détaillées.
Création d'index attributaires à l'aide du géotraitement
Le jeu d'outils Index de la boîte à outils Gestion des données fournit deux outils essentiels pour créer et supprimer des index attributaires.
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 attributaires existante. Il est disponible avec n'importe quelle licence ArcGIS mais peut uniquement être utilisé avec des géodatabases d'entreprise si vous possédez une licence ArcGIS for Desktop Standard ou Advanced.
L'outil Supprimer un index attributaire supprime un index mono-colonne ou multi-colonnes d'une table, une classe d'entités ou une classe de relations attributaires existante. Cet outil est également disponible avec toute licence ArcGIS.
Noms d'index attributaires
Lorsque vous nommez un index dans une géodatabase d'entreprise, il est judicieux d'attribuer à l'index un nom qui reflète la table ou même les colonnes indexées. 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 sur la table d'adresses, APK représente la colonne qui est 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
ArcGIS impose une limite de 16 caractères pour la longueur des noms d'index attributaires. Cette limite est basée sur la plus petite longueur autorisée dans les bases de données gérées pour faciliter la distribution et le partage de données entre des géodatabases différentes.
Index uniques
Lorsque vous créez un index, une option vous permet de créer l'index comme étant unique. Sélectionnez cette option si l'attribut a des valeurs uniques dans chaque enregistrement. Cela accélère l'exécution de requêtes sur cet attribut, car la base de données peut arrêter la recherche une fois la première valeur correspondante trouvée.
Index croissants et décroissants
Lorsque vous créez un index, une option permet de créer l'index comme étant croissant, ou si cette option n'est pas activée, comme étant décroissant. Un index croissant est géré en ordre croissant. Par exemple, les noms de ville Athènes, Berlin, Londres et Paris apparaissent dans cet ordre dans un index croissant, alors que dans un index décroissant, ils s'affichent dans l'ordre Paris, Londres, Berlin et Athènes.
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 et 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 fréquemment deux ou trois champs dans une requête simultanément. 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 champ.
L'ordre dans lequel les champs 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 et la meilleure décision coule rarement de source. Cependant, il existe souvent différentes solutions qui peuvent fonctionner. Par exemple, 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 index sur B et un index multi-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.