Index spatiaux dans la géodatabase

ArcGIS Pro utilise les index spatiaux pour améliorer les performances des requêtes spatiales 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'ArcGIS Pro 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 Pro,, 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 :

Db2 est une exception à cette règle. 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 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 de 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 (ou cadres englobants), reportez-vous à la documentation Microsoft SQL Server.

Gestion des index spatiaux dans ArcGIS

La façon dont ArcGIS Pro 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 Pro 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 (Oracle Esri ST_Geometry, Db2 ou une géodatabase fichier). 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 Pro 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 Pro 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 façon dont ArcGIS Pro 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 Pro 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 (Oracle Esri ST_Geometry, Db2 ou une géodatabase fichier). Si les données sources utilisent tout autre type d’index, ArcGIS Procré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 Pro 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 (Oracle Esri ST_Geometry, Db2 ou une géodatabase fichier). Si les données sources utilisent tout autre type d’index, ArcGIS Procré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 Pro 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 Pro 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 Pro 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 Pro 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 Pro n’en crée pas ni n’en conserve.

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.