ArcGIS AllSource utilise les index spatiaux pour améliorer les performances de la requête spatiale dans 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 de ArcGIS AllSource afin d'utiliser l'index spatial pour localiser les entités.
Remarque :
Lorsque vous ouvez la table attributaire dans ArcGIS AllSource, les champs indexés ont un astérisque (*) en regard de leur nom.
Si 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 AllSource, un index spatial est créé dans la classe d'entités. L'index spatial est utilisé pendant l'interrogation et la modification des données.
Remarque :
La seule exception est Db2. Si 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 varient selon la source de données. La liste de types d’index spatiaux ci-dessous contient les sources de données de géodatabase qui utilisent cet index dans ses classes d’entités :
- Index spatial basé sur une grille
- Géodatabases fichier
- Géodatabases dans Db2
- Géodatabases dans Oracle si la classe d’entités contient une colonne Esri ST_Geometry
- Index spatial d’arborescence R
- Géodatabases mobiles
- Géodatabases dans Oracle qui contiennent des classes d’entités avec un type de données spatial Oracle (SDO_Geometry)
- Index GiST (Generalized Search Tree)
- Géodatabases dans PostgreSQL
- Index spatial d’arborescence B modifié
- Géodatabases dans Microsoft SQL Server contenant des classes d’entités qui utilisent une colonne spatiale de géométrie ou géographie. L’index spatial sur une colonne spatiale de géométrie stocke également les coordonnées d’emprise. Pour plus d’informations sur les emprises, reportez-vous à la documentation Microsoft SQL Server.
Gestion des index spatiaux dans ArcGIS
La manière dont ArcGIS AllSource crée ou reconstruit les index spatiaux dépend du type de géodatabase et, dans le cas des géodatabases d’entreprise, varie selon le système de gestion de base de données utilisé. Les deux sections suivantes présentent ces différences de fonctionnalités.
Index spatiaux dans les géodatabases fichier
Les index spatiaux contenus dans les géodatabases fichier peuvent être décrits comme suit :
- Lorsque vous créez une classe d’entités, ArcGIS AllSource crée un index spatial.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase fichier, l’index spatial est copié avec les données sources si la classe d’entités source utilise un index basé sur une grille. L’index spatial est reconstruit dans la géodatabase fichier de destination si les données sources utilisent tout autre type d’index.
- 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, l’index spatial dont disposait la classe d’entités avant la compression est rétabli automatiquement.
Index spatiaux dans les géodatabases mobiles
Les index spatiaux contenus dans les géodatabases mobiles peuvent être décrits comme suit :
- Lorsque vous créez une classe d’entités, ArcGIS AllSource crée un index spatial.
- Le fait d’enregistrer des mises à jour d’entités dans une classe d’entités dépourvue d’index spatial n’a pas pour effet de créer un index spatial.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase mobile, ArcGIS AllSource crée un index spatial dans la classe d’entités de la géodatabase mobile en fonction des entités copiées.
Index spatiaux dans les géodatabases d’entreprise
Les listes suivantes décrivent la manière dont ArcGIS AllSource gère l’index spatial dans une classe d’entités de géodatabase dans chaque système de gestion de base de données pris en charge :
- Db2
- Lorsque vous créez une classe d’entités, ArcGIS AllSource ne crée pas d’index spatial.
- Lorsque vous enregistrez des mises à jour d’entités dans une classe d’entités dépourvue d’index spatial, un index spatial est créé.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase dans Db2, l’index spatial est copié avec les données sources si la classe d’entités source utilise un index basé sur une grille. Si les données sources utilisent tout autre type d’index, ArcGIS AllSource crée l’index spatial dans la géodatabase de destination dans Db2 en fonction des entités copiées.
- Oracle
- Lorsque vous créez une classe d’entités, ArcGIS AllSource crée un index spatial.
- Lorsque vous enregistrez des mises à jour d’entités dans une classe d’entités dépourvue d’index spatial, un index spatial est créé.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase dans Oracle et que vous utilisez le type Esri ST_Geometry pour la classe d’entités, l’index spatial est copié avec les données sources si la classe d’entités source utilise un index basé sur une grille. Si les données sources utilisent tout autre type d’index, ArcGIS AllSource crée l’index spatial dans la géodatabase de destination dans Oracle en fonction des entités copiées.
- PostgreSQL
- Lorsque vous créez une classe d’entités, ArcGIS AllSource crée un index spatial.
- Lorsque vous enregistrez des mises à jour d’entités dans une classe d’entités dépourvue d’index spatial, un index spatial est créé.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase dans PostgreSQL, ArcGIS AllSource crée un index spatial dans la classe d’entités de PostgreSQL en fonction des entités copiées.
- SQL Server
- Lorsque vous créez une classe d’entités, ArcGIS AllSource crée un index spatial.
- Le fait d’enregistrer des mises à jour d’entités dans une classe d’entités dépourvue d’index spatial n’a pas pour effet de créer un index spatial.
- Si vous copiez une classe d’entités d’une géodatabase vers une géodatabase dans SQL Server, ArcGIS AllSource crée un index spatial dans la classe d’entités de SQL Server en fonction des entités copiées.
- SAP HANA n’utilise pas d’index spatiaux pour favoriser les performances des requêtes. Par conséquent, ArcGIS AllSource n’en crée pas et n’en gère pas.
Quand mettre à jour l'index spatial
Pour les classes d’entités de SQL Server qui utilisent le type spatial de géométrie, l’index spatial utilise une emprise qui doit être mise à jour manuellement à mesure que des entités sont insérées et supprimées. Pour déterminer à quel moment vous devez recalculer l’index spatial dans une classe d’entités de SQL Server, utilisez l’opération Validate (Valider) dans la boîte de dialogue Feature Class Properties (Propriétés de la classe d’entités).
Pour tous les autres types spatiaux et géodatabases, il est rare de devoir gérer l’index spatial. Cependant, si vous remarquez une baisse des performances des requêtes spatiales après avoir ajouté ou supprimé un grand nombre d’entités, il se peut que vous constatiez une amélioration des performances des requêtes spatiales si vous reconstruisez (Oracle) ou recréez l’index spatial dans la classe d’entités affectée.
Vous avez un commentaire à formuler concernant cette rubrique ?