Index spatiaux et ST_Geometry

Les index spatiaux utilisés avec ST_Geometry sont implémentés différemment selon le SGBD utilisé. Le module IBM Informix Spatial DataBlade et l'implémentation ST_Geometry dans PostgreSQL utilisent un index d'arborescence R pour indexer les données spatiales. ST_Geometry dans Oracle et DB2 utilise une valeur d'index spatial.

Un index spatial peut être créé de plusieurs façons :

Lorsque vous effectuez des requêtes de relations spatiales sur des tables qui contiennent des colonnes ST_Geometry, elles utilisent un index spatial pour accélérer le processus de requête uniquement lorsque vous exécutez certaines fonctions de relations spatiales. Ces fonctions sont répertoriées dans Cas d'utilisation des index spatiaux.

Oracle

Une classe d'entités créée à l'aide du type de 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$, où <n> est 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 comme une table de type IOT (Indexed Organized Table) Oracle. L'index spatial sur l'attribut ST_Geometry apparaît sous la forme A<n>_IX1 en cas d'affichage avec Enterprise Manager. La valeur de <n> représente la valeur LAYER_ID stockée dans la table LAYERS.

Deux index supplémentaires sont créés sur la table S<n>_IDX$, à savoir : 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 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, peut-être souhaiterez-vous é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 au chapitre 51 de la documentation PostgreSQL 8.3.

IBM DB2 et Informix

Pour plus d'informations sur les index spatiaux dans DB2, reportez-vous à la rubrique Index spatiaux générés par DB2 Spatial Extender. Pour plus d'informations sur les index spatiaux dans Informix, reportez-vous à la rubrique Index spatiaux dans les géodatabases Informix.

Rubriques associées


3/6/2012