Los índices espaciales utilizados con ST_Geometry se implementan de manera diferente según el DBMS que se use. ST_Geometry en Oracle y DB2 utiliza un índice de cuadrícula espacial. El módulo Informix Spatial DataBlade de IBM, la implementación de ST_Geometry en PostgreSQL y SQLite utilizan un índice de árbol R para indexar los datos espaciales. En SQLite, el índice del árbol R es una tabla virtual.
Puede crear un índice espacial de las maneras siguientes:
- Para índices de cuadrícula, puede hacer clic en Agregar en la pestaña Índices del cuadro de diálogo Propiedades de clase de entidad en ArcCatalog. Consulte Reconstruir un índice espacial.
- Usar SQL.
Tenga en cuenta que cuando se realizan consultas de relaciones espaciales en tablas que contienen columnas ST_Geometry, utilizan un índice espacial para acelerar el proceso de consulta solamente cuando se ejecutan determinadas funciones de relación espacial. Estas se enumeran en la sección ¿Cuándo se utilizan los índices espaciales?
Oracle
Una clase de entidad creada usando almacenamiento ST_Geometry con un índice espacial, crea una tabla adicional dentro de la base de datos de Oracle. La tabla de índice espacial se denomina S<n>_IDX$, donde <n> es el valor del índice de geometría para la tabla. El valor se puede obtener consultando la tabla SDE.ST_GEOMETRY_COLUMNS. La tabla de índice espacial se crea como una Tabla de índice organizada (IOT) de Oracle. El índice espacial del atributo ST_Geometry aparece como A<n>_IX1cuando se visualiza a través de Enterprise Manager. El valor de <n> representa el valor de LAYER_ID almacenado en la tabla LAYERS.
Se crean dos índices adicionales en la tabla S<n>_IDX$: S<n>$_IX1 y S<n>$_IX2. Puede especificar cómo se almacenan estos índices en el DBMS modificando el parámetro S_STORAGE de la palabra clave de configuración DBTUNE, que se especifica cuando crea una clase de entidad.
Si crea tablas de negocios divididas que contienen una columna ST_Geometry, también querrá que el índice espacial esté dividido. Hay dos tipos de métodos de división: global y local. De forma predeterminada, los índices globales divididos se crean en tablas de negocios divididas. Para crear un índice local dividido, deberá agregar la palabra clave LOCAL al final de la declaración CREATE INDEX. Para permitir que ArcGIS añada LOCAL a la declaración CREATE INDEX del índice espacial, establezca el parámetro ST_INDEX_PARTITION_LOCAL en TRUE bajo la palabra clave DEFAULTS.
PostgreSQL
En PostgreSQL, el índice de árbol R se implementa por medio de la infraestructura de índice de Jerarquía de búsqueda generalizada (GiST). Para obtener información sobre índices GiST, consulte la documentación de PostgreSQL.
SQLite
En SQLite, el índice espacial es un conjunto de tablas que se emplean como índice de árbol R.
IBM DB2 e Informix
Para obtener información sobre los índices espaciales en DB2 e Informix, consulte la documentación de IBM.