Oracle Bounds calculation efficiency
Issue Type: Improvement
Components: data jdbc-ng, data oraclespatial
Affects Versions: 2.6.5
Environment: uDig 1.2.0
Reporter: Jody Garnett
I have yet to see uDig (including 1.2.0) use user_sdo_geom_metadata,
instead, it seems to always insist on running
SELECT SDO_AGGR_MBR(GEOMETRY) FROM BIG_SPATIAL_TABLE
for every table in the schema.
Will uDig ever use user_sdo_geom_metadata? Running a full table scan on
every spatial table makes it pretty much useless for anything but a
trivial amount of data.
We previously had code to check the metadata table, however Simon Greener offers an alternate suggestion:
I learned when programming GeoRaptor that you
can access the root mbr of the Oracle RTree
in user_sdo_index_metadata (column sdo_root_mbr).
This is an sdo_geometry object. However,
when it contains the mbr of a gedetix layer,
we haven't worked out what the
sdoordinates mean, as yet.
But is is blindingly faat: better tahn aggr union.
Code is in metedatatool.java in sourceforge repository.
uDig is calling the datastore getBounds() method, we can take some steps to call it in a separate thread.
If we are worried about correctness we could arrange an alternate pathway - a loose bounds query hints combined with getFeatures(Query).getBounds() for example.
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira