Les index spatiaux utilisés avec ST_Geometry sont implémentés différemment selon le SGBD utilisé. ST_Geometry dans Oracle et DB2 utilise une grille d'index spatial. Le module IBM Informix Spatial DataBlade, l'implémentation ST_Geometry dans PostgreSQL et SQLite utilisent un index d'arborescence R pour indexer les données spatiales. Dans SQLite, l'index d'arborescence R est une table virtuelle.
Vous pouvez créer un index spatial comme suit :
- Pour les grilles d'index, vous pouvez cliquer sur Ajouter sous l'onglet Index de la boîte de dialogue Propriétés de la classe d'entités d'ArcCatalog. Reportez-vous à la rubrique Définition des index spatiaux.
- Utilisez SQL. Reportez-vous à la rubrique Création d'index spatiaux pour les tables ayant une colonne ST_Geometry.
Gardez à l'esprit que lorsque vous émettez des requêtes de relations spatiales sur des tables contenant des colonnes ST_Geometry, elles utilisent un index spatial qui accélère le processus de requête uniquement lorsque vous exécutez certaines fonctions de relations spatiales. Vous en trouverez la liste dans Modalités d'utilisation des index spatiaux.
Oracle
Une classe d'entités créée à l'aide du stockage ST_Geometry avec un index spatial crée une table supplémentaire dans la base de données Oracle. La table d'index spatial est nommée S<n>_IDX$, <n> étant la valeur de l'index de géométrie de la table. La valeur peut être obtenue en interrogeant la table SDE.ST_GEOMETRY_COLUMNS. La table d'index spatial est créée sous forme de table IOT (Indexed Organized Table) Oracle. L'index spatial sur l'attribut ST_Geometry apparaît comme A<n>_IX1 en cas d'affichage avec Enterprise Manager. La valeur <n> représente la valeur LAYER_ID stockée dans la table LAYERS.
Deux index supplémentaires sont créés dans la table S<n>_IDX$ : S<n>$_IX1 et S<n>$_IX2. Vous pouvez spécifier le mode de stockage de ces index dans le SGBD en modifiant le paramètre S_STORAGE dans le mot-clé de configuration DBTUNE que vous indiquez lorsque vous créez une classe d'entités.
Si vous créez des tables métier partitionnées contenant une colonne ST_Geometry, vous voudrez également que l'index spatial soit partitionné. Il existe deux types de méthode de partitionnement : global et local. Par défaut, ce sont les index partitionné globaux qui sont créés sur les tables métier partitionnées. Pour créer un index partitionné local, vous devez ajouter le mot-clé LOCAL à la fin de l'instruction CREATE INDEX. Pour permettre à ArcGIS d'ajouter LOCAL à la fin de l'instruction CREATE INDEX pour l'index spatial, définissez le paramètre ST_INDEX_PARTITION_LOCAL sur TRUE sous le mot-clé DEFAULTS.
PostgreSQL
Dans PostgreSQL, l'index d'arborescence R est implémenté à l'aide de l'infrastructure d'index GiST (Generalized Search Tree). Pour plus d'informations sur l'indexation GiST, reportez-vous à la documentation PostgreSQL.
SQLite
L'index spatial dans SQLite est un ensemble de tables utilisé comme index d'arborescence R.
IBM DB2 et Informix
Pour en savoir plus sur les index spatiaux dans DB2 et Informix, consultez la documentation IBM.