Índices espaciales y ST_Geometry
Los índices espaciales utilizados con ST_Geometry se implementan de manera diferente según el DBMS que se use. El módulo Informix Spatial DataBlade de IBM y la implementación de ST_Geometry en PostgreSQL utilizan un índice de árbol R para indexar los datos espaciales. ST_Geometry en Oracle y DB2 utiliza un índice de cuadrícula espacial.
Puede crear un índice espacial de varias maneras:
- Para índices de cuadrícula, puede hacer clic en Agregar en la ficha Índices del cuadro de diálogo Propiedades de clase de entidad en ArcCatalog. Consulte Configurar índices espaciales.
- Utilice la utilidad de comando de administración sdelayer. Consulte la Referencia de comandos de administración de ArcSDE.
- Utilice SQL. Consulte Crear índices espaciales en tablas con una columna ST_Geometry.
- Utilice las interfaces de programación de aplicaciones (API) Java o C de ArcSDE. Consulte el Centro de recursos de geodatabase.
- Alterne una clase de entidad desde el modo de E/S de sólo carga al modo de E/S normal por medio del comando sdelayer con las operaciones load_only_io y normal_io. ArcSDE descarta y vuelve a crear automáticamente cualquier índice espacial creado por ArcSDE cada vez que la clase de entidad alterna entre los modos LOAD_ONLY_IO y NORMAL_IO.
Cuando realiza consultas de relaciones espaciales contra tablas que contienen columnas de ST_Geometry, éstas 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 con almacenamiento ST_Geometry y una tabla de í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 el capítulo 51 de la Documentación de PostgreSQL 8.3.
IBM DB2 e Informix
Para obtener información sobre índices espaciales en DB2, consulte Índices espaciales generados por el extensor espacial de DB2. Para obtener información sobre índices espaciales en Informix, consulte Índices espaciales en geodatabases en Informix.