ArcGIS utilise les index spatiaux pour améliorer les performances de la requête spatiale sur les classes d’entités. Pour identifier une entité, sélectionner des entités en pointant ou en traçant un cadre et effectuer des déplacements et des zooms, vous devez disposer d'ArcMap afin d'utiliser l'index spatial pour localiser les entités.
Lorsque vous créez une classe d'entités* vide ou que vous importez des données pour créer une classe d'entités dans une géodatabase depuis ArcGIS, un index spatial est créé sur la classe d'entités. L'index spatial est utilisé pendant l'interrogation et la modification des données.
*Lorsque vous créez des classes d'entités vides dans des géodatabases dans DB2, aucun index spatial n'est créé.
Types d'index spatiaux
Les index spatiaux fonctionnent différemment selon la source de données. Les classes d'entités dans les types de géodatabases suivants utilisent des index spatiaux basés sur des grilles.
- Géodatabases personnelles
- Géodatabases fichier
- Géodatabases dans DB2
- Géodatabases d'Oracle, si la classe d'entités contient un champ de stockage de géométries binaire ou Esri ST_Geometry
- Géodatabases de SQL Server, si la classe d'entités contient un champ de stockage de géométries binaire
Les classes d'entités des types de géodatabases suivants utilisent des index spatiaux d'arborescence R :
- Géodatabases d'Oracle, si la classe d'entités contient un champ de stockage Oracle Spatial (SDO_Geometry)
- Géodatabases dans Informix
- Géodatabases dans PostgreSQL
Les classes d'entités des géodatabases de SQL Server contenant un champ de stockage de géométrie ou de géographie utilisent un index spatial B-tree modifié.
Gestion des index spatiaux par ArcGIS
ArcGIS recrée automatiquement l'index spatial à la fin de certaines opérations dans les géodatabases fichier, d'entreprise, de groupe de travail et de bureau, pour optimiser cet index. La section suivante explique comment ArcGIS gère l'index spatial :
- Lorsque vous créez une classe d'entités vide à l'aide de l'assistant Nouvelle classe d'entités, un index spatial est créé pour les géodatabases fichier, de groupe de travail, de bureau et toutes les géodatabases d'entreprise, à l'exception de celles qui se trouvent dans des bases de données DB2. L'index spatial est utilisé lors de toute modification, interrogation ou exécution des commandes Charger les données. Dans les géodatabases d'entreprise dans DB2, l'index spatial est créé une fois les données chargées dans la classe d'entités vide.
- Si vous importez des données à partir d'une géodatabase personnelle, d'un fichier de formes ou d'une couverture, ou que vous importez un dessin assisté par ordinateur (DAO) ou des données Smart Data Compression (SDC) dans une géodatabase fichier, d'entreprise, de groupe de travail ou de bureau, un index spatial est calculé automatiquement pour la nouvelle classe d'entités.
- L'index spatial est automatiquement recréé lorsque vous utilisez les commandes Copier et Coller d'ArcCatalog pour copier une classe d'entités à partir d'une géodatabase personnelle vers une géodatabase fichier, d'entreprise, de groupe de travail ou de bureau. L'index spatial est également recréé si vous copiez une classe d'entités depuis Oracle Spatial, PostgreSQL ou Informix. Si vous copiez une classe d'entités à partir d'une géodatabase fichier ou d'entreprise qui utilise un index basé sur une grille (types Oracle binaire et ST_Geometry, SQL Server binaire ou DB2) vers une autre géodatabase utilisant également un index basé sur une grille, cet index est copié avec les données source et n'est pas recréé.
- Lorsque vous utilisez un outil de géotraitement qui crée une classe d'entités, cet outil crée un index spatial reposant sur les entités de la nouvelle classe d'entités.
- Lorsque vous enregistrez vos modifications ou utilisez des commandes Charger les données sur une classe d'entités ne présentant aucun index spatial, un index spatial est créé à la fin de l'opération d'enregistrement des modifications ou de chargement des données.
- Les classes d'entités de géodatabase fichier compressées n'utilisent pas le même type d'index spatial que les classes d'entités non compressées. Lorsque vous compressez une classe d'entités de géodatabase fichier, elle est automatiquement réindexée. Cet index ne peut pas être modifié. Lorsque vous décompressez la classe d'entités, le même index spatial que la classe d'entités avait avant la compression est rétabli automatiquement.
Quand mettre à jour l'index spatial
Comme ArcGIS gère l'index spatial dans les géodatabases fichier, d'entreprise, de groupe de travail et de bureau, vous devez rarement recréer l'index manuellement. Il est recommandé de recréer l'index spatial uniquement après avoir ajouté un grand nombre d'entités dont la taille est différente de celle des entités déjà présentes dans la classe d'entités. Cela s'applique exclusivement à l'ajout d'entités lors de sessions de mise à jour. Par exemple, vous avez pu démarrer une session de mise à jour et ajouter manuellement un grand nombre d'entités linéaires ou avoir utilisé le Chargeur d'objets pour les charger. Beaucoup des entités que vous avez ajoutées sont considérablement plus longues ou plus courtes que les entités figurant déjà dans la classe d'entités. L'index spatial doit être mis à jour pour garantir qu'il fonctionne de manière optimale avec les nouvelles entités.
Lorsque vous créez une classe d'entités dans une géodatabase personnelle à l'aide de l'assistant Nouvelle classe d'entités, d'un outil de géotraitement ou de toute autre méthode, ArcGIS calcule l'index spatial. L'index spatial créé sur une classe d'entités dans une géodatabase personnelle est basé sur l'horizon du système de coordonnées de la classe d'entités. Il est toujours optimisé et il ne peut pas être modifié.