[postgis-devel] Several R-Trees

Leticia lgomez at itba.edu.ar
Thu Mar 29 05:51:08 PDT 2007


Hello!

 

I have two tables, each one with a geometry column.

 

I have built two R-Tree indexes. i.e.

 

 

Create index  idxrivers2000 on rivers2000 using gist (geometry
gist_geometry_ops)                     

 

Create index  idxcities2000 on cities2000 using gist (geometry
gist_geometry_ops)                        

 

 

 

Now, I need to make spatial join queries like this "how many cities are
crossed by rivers?"

 

SELECT COUNT(*)

FROM rivers2000, cities2000

WHERE  rivers2000.geometry & cities2000.geometries  AND
interescts(rivers2000.geometry,cities2000.geometries  )

 

1)     The use of the "&" operator is to force the R-tree using in the query
plan. If I do not use it, the index will not be chosen. Am I ok?

 

2)     If I only use the subexpression "WHERE rivers2000.geometry &
cities2000.geometries" it only use MBRs and It is not correct, as I need not
only to use FIRST FILTER, but obtain and exact result.

 

3)     When I look the query plan, I see that it uses only one of the
indexes (INDEXSCAN on one of them), and then use a lookup table over the
other table (SCAN TABLE over the other table). Is it possible to force
Postgress/Postgis to use a Spatial Join (use the two indexes instead of
using a table scan) ? How?

 

Thanks in advance,

Leticia

 

 

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20070329/fe32533d/attachment.html>


More information about the postgis-devel mailing list