We're working on tuning a GeoServer implementation over an Oracle SDO
database. We think we are seeing that the network latency of queries is the
hotspot in the performance of GeoServer render requests.

It seems that for some situations one way to reduce the data being pushed
over the wire is to reduce the data size in the database query.  In
particular, for some datasets of polygons we're happy just to see points
representing the polygons.  So we tried using a SQLView with a statement
like:

select GEOMETRY, SDO_GEOM.SDO_CENTROID(GEOMETRY, 1) PT from CUT_BLOCK_SP

and then used an SLD <Geometry> selector to render just the point.

However, this doesn't work because we get the dreaded ORA-13226: interface
not supported without a spatial index error.  This is because GeoServer is
actually emitting the query

SELECT PT as PT FROM (select GEOMETRY, SDO_GEOM.SDO_CENTROID(GEOMETRY, 1)
PT from CUT_BLOCK_SP t) VTABLE WHERE  SDO_FILTER(PT, ?, 'mask=anyinteract
querytype=WINDOW') = 'TRUE'

and there is no index defined on the PT column.

Now, this would work if GeoServer could emit the query:

SELECT PT as PT FROM (select SDO_GEOM.SDO_CENTROID(GEOMETRY, 1) PT from
CUT_BLOCK_SP t) VTABLE WHERE  SDO_FILTER(GEOMETRY, ?, 'mask=anyinteract
querytype=WINDOW') = 'TRUE'

Is there any way to get this to happen?

Or does anyone have other ideas about how to reduce query data size on
Oracle?
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to