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 IBM 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 dans Oracle, si la classe d'entités contient un champ de stockage de géométries binaire ou ST_Geometry Esri
- Géodatabases dans Microsoft 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 dans Oracle, si la classe d'entités contient un champ de stockage Oracle Spatial (SDO_Geometry)
- Géodatabases dans IBM Informix
- Géodatabases dans PostgreSQL
Les classes d'entités des géodatabases dans SQL Servercontenant un champ de stockage de géométrie ou de géographie utilisent un index spatial d’arborescence B 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 New Feature Class (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 Load Data (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 Copy (Copier) et Paste (Coller) d'ArcGIS 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 à partir de 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 Load Data (Charger les données) sur une classe d'entités ne présentant aucun index spatial, un index spatial est créé lorsque vous enregistrez vos modifications ou que se termine le 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, si vous commencez une session de mise à jour et ajoutez manuellement un grand nombre d’entités linéaires ou que vous les chargez avec le Chargeur d'objets, une grande partie des entités que vous ajoutez peuvent être considérablement plus longues ou plus courtes que les entités se trouvant déjà dans la classe d’entités. L'index spatial doit être mis à jour pour garantir qu'il fonctionnera de manière optimale avec les nouvelles entités.
Lorsque vous créez une classe d’entités dans une géodatabase personnelle en utilisant une méthode quelconque dans ArcGIS, 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é.