[postgis-users] Faster point polygon query

Dan Erikson dan.erikson at timberline.ca
Wed Jan 23 14:07:34 PST 2008


Thanks for the replies already.  I do have clustered spatial indexes on 
each of the tables.  I'll check out the simplify, and do some testing on 
that.

Thanks again.

Dan Erikson BNRSc
-------------------------------------
Timberline Natural Resource Group
(250)-314-0875 ext 240
www.timberline.ca
-------------------------------------




Burgholzer,Robert wrote:
> Make sure that you have spatial indices on the geom columns in each
> table. If that is already the case, the most likely culprit is extremely
> complex polygon shapes, which the containment algorithms are not suited
> to do quickly (although it might be the fastest algorithm possible).
> Suggestions that have come up in the past were to use the "simplify()"
> function to remove extraneous edges from your polygons, making the query
> faster.
>
> Robert W. Burgholzer
> Surface Water Modeler
> Office of Water Supply and Planning
> Virginia Department of Environmental Quality
> rwburgholzer at deq.virginia.gov
> 804-698-4405
> Open Source Modeling Tools:
> http://sourceforge.net/projects/npsource/
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Dan
> Erikson
> Sent: Wednesday, January 23, 2008 4:34 PM
> To: PostGIS Users Discussion
> Subject: [postgis-users] Faster point polygon query
>
> I need to relate two spatial datasets.  One dataset is a point dataset 
> (~200 Million records), the other is a polygon dataset (~500,000 
> records).  The result of these queries is to be a non-spatial table 
> listing the id's ("tid" in this case) from each table where there is a 
> spatial join.  I have tried both ST_Within and ST_Distance, and both 
> queries are incredibly slow (> 100 hours).   Running on a very capable 
> server.  Any ideas on faster methods to complete this query?
>
> Thanks!
>
> CREATE TABLE public.step2 as
>     (SELECT mp.pntgrid_10_tid AS pntgrid_10_tid,
>         vri.tid AS vri_tid
>     FROM grids.tbl_mtsa_pnts mp, vri.tbl_vri vri
>     WHERE mp.geom && vri.geom
>         AND ST_Within(mp.geom, vri.geom));
>
> CREATE TABLE public.step2 as
>     (SELECT mp.pntgrid_10_tid AS pntgrid_10_tid,
>         vri.tid AS vri_tid
>     FROM grids.tbl_mtsa_pnts mp, vri.tbl_vri vri
>     WHERE mp.geom && vri.geom
>         AND ST_Distance(mp.geom, vri.geom) = 0);
>
>   



More information about the postgis-users mailing list