more than likely you have a huge polygon that is interacting with a large number of points which is costly.

You can check this with:

select geomA.gid, count(*) as cnt
  from largepoly as geomA, --polygon table
       largepoints as geomB --point table
 where geomA.the_geom && geomB.the_geom
 group by geomA.gid
 order by cnt desc limit 100;

This will tell you how many points interact with each polygon limiting the results to the top 100 counts. I would expect that you will find a small number of polygons with very high counts.

I think is the case, you might try tagging these polygons and eliminating them from the initially and then processing them separately to see if that speeds things up.

Also you want to try reversing you arguments to st_dwithin( and put the polygon first as there may be some caching ot the first parameter that might speed things up.

-Steve

On 3/24/2011 7:58 PM, Loren Dawe wrote:
Hi All!
I am a new PostGIS user and have been using
st_dwithin(geomB.the_geom,geomA.the_geom,0.000025) with excellent speed
results compared with ArcGIS spatial join. My datasets range from
1-1,000,000 points and 10,000-1,500,000 polys and most run within
minutes. However at a certain point in the larger joins, the speed goes
from minutes to many hours (20 hours on one set). The SQL is the same
for smaller sets and the larger ones.
Are there any settings/commands/configurations to allow for the larger
datasets?
Please note that I am using the Shape File to PostGIS Importer which is
set to create the GIST index automatically. Also, after some research
tried using the SET ENABLE_SEQSCAN=OFF command which did not seem to
help. Heres the query as it stands:

<code>
SET ENABLE_SEQSCAN=OFF;
SELECT geomA.the_geom, geomA.gid, geomA.height
INTO resultstest
FROM largepoly as geomA, --polygon table
      largepoints as geomB --point table

WHERE st_dwithin(geomB.the_geom,geomA.the_geom,0.000025)

GROUP BY geomA.gid, geomA.height, geomA.the_geom
ORDER BY geomA.gid
;
</code>

TIA, Loren.

Loren Dawe:GIS Manager
www.terraremote.com<http://www.terraremote.com/>
terra remote sensing inc.
1962 Mills Road Sidney, BC, Canada, V8L 5Y3
T:250.656.0931 F:250.656.4604 T:800.814.4212    
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to