Processing math: 100%

5 votos

ArcGIS Server y Oracle SDO Geometry Interop - No puede ser tan lento

Tengo un servicio de mapas de ArcGIS Map Server que se conecta a una instancia de Oracle 11G a través de Direct Connect. No hay necesidad de ArcSDE ya que nuestra aplicación no necesita versionado, replicación, o cualquier otro de los doo-dads que ArcSDE proporciona. Todo lo que queremos hacer es trazar algunos puntos en un mapa.

La(s) tabla(s) Oracle tiene(n) una columna SDO Geometry que sólo contiene tipos de geometría de puntos. He implementado un índice espacial, geometrías validadas, tolerancia optimizada...etc. Sin embargo, el rendimiento de renderizado de una capa que apunta a la columna SDO Geometry es horrible - 15-20 segundos para renderizar 10k puntos con simbología muy simple. En realidad he encontrado que el uso de una capa de eventos utilizando valores x,y en bruto es más rápido que el uso de columnas de geometría SDO.

Admitiré que tengo más conocimientos de MS SQL y PostGIS, pero he sido bastante concienzudo a la hora de asegurarme de que estoy haciendo las cosas bien con Oracle. Espero que alguien con más experiencia en el uso de Oracle SDO Geometría en sus servicios de mapas puede proporcionar más orientación - hay tal vez algunos gotcha me estoy perdiendo.

ACTUALIZACIÓN (A petición de Vince):

Índice espacial SQL: CREATE INDEX ON "SGSDWADM"."SERVICELOCATION"("GEOMETRY") INDEXTYPE IS MDSYS.SPATIAL_INDEX

USER_SDO_GEOM_METADATA fila: enter image description here

Describa la salida:

enter image description here

3voto

M. B. Altaie Puntos 11

Los índices espaciales en general, y el índice espacial de Oracle en particular, tienden a funcionar mejor si los objetos monopunto y multipunto se tratan de forma diferente. En este caso, eso significaría utilizar la opción PARÁMETROS en el comando CREAR ÍNDICE, como se indica a continuación:

CREATE INDEX servicelocation_spx ON servicelocation(geometry)
    INDEXTYPE IS MDSYS.SPATIAL_INDEX 
    PARAMETERS ('sdo_indx_dims=2, layer_gtype=point')
/

Si dispone de varios discos independientes, es probable que resulte beneficioso especificar un tablespace en un disco distinto del tablespace donde vive la tabla primaria (también dentro de la opción PARÁMETROS).

He aquí una Enlace a la documentación de Oracle .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X