Les index spatiaux utilisés avec ST_Geometry sont implémentés différemment selon le système de gestion de bases de données utilisé. ST_Geometry dans Oracle et IBM Db2 utilise un index de grille spatial. Le module Spatial DataBlade IBM Informix, l’implémentation de ST_Geometry dans PostgreSQL et SQLite utilisent index d’arborescence R pour indexer les données spatiales. dans SQLite, l’index d’arborescence R est un tableau virtuel.
Vous pouvez créer un index spatial comme suit :
- Pour les index de grille, vous pouvez cliquer sur Add (Ajouter) dans l’onglet Indexes (Index) de la boîte de dialogue Feature Class Properties (Propriétés de classe d’entités) dans ArcCatalog. Reportez-vous à la rubrique Recréer un index spatial.
- Utiliser SQL.
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
Les classes d’entités qui utilisent le stockage ST_Geometry font appel à une table distincte pour stocker les informations relatives à l’index spatial. 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 de l’index de géométrie est stockée dans la table système de la géodatabase SDE.ST_GEOMETRY_COLUMNS. La table d’index spatial est créée sous forme de table IOT (Oracle Indexed Organized Table). L’index spatial sur l’attribut ST_Geometry apparaît comme A<n>_IX1 en cas d’affichage avec Oracle Enterprise Manager. La valeur <n> représente la valeur LAYER_ID stockée dans la table système de la géodatabase 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 la manière dont ces index sont stockés dans le système de gestion de base de données en modifiant le paramètre S_STORAGE dans le mot-clé de configuration DBTUNE que vous spécifiez lors de la création d’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 un index d’arborescence R.
Db2 et Informix
Pour obtenir des informations sur les index spatiaux dans Db2 et Informix, reportez-vous à la documentation IBM.