[postgis-users] optimize: count up points near a point
Josh Livni
josh at livniconsulting.com
Thu Jul 13 18:07:36 PDT 2006
I checked a few threads on this topic, but didn't come across anything
that helped me make my query a lot quicker. So, I post here asking for
your advice:
I have about a million parcels, some of which are missing an attribute.
I'd like to query parcels nearby (say within 1km) to get some stats on
their value for the attribute.
Right now it takes about 40-60 seconds to report on the nearby parcels -
since over 100k parcels are missing the attribute, this is a problem...
---BEGIN QUERY---
SELECT count(*) as count,
avg(asr_impr) as avg,
sum(asr_impr) as sum,
max(asr_impr) as max,
min(asr_impr) as min
FROM parcels as p
WHERE attribute > 0 and other_attribute = 11
AND (expand(p.the_geom,3280.8) && setsrid('POINT(6296272.3
1955364.5)'::geometry,102646))
AND distance(centroid(p.the_geom), setsrid('POINT(6296272.3
1955364.5)'::geometry,102646)) < 3280.8
---END QUERY---
I have a btree index on the attribute and other_attribute columns, and a
gist index on the parcels centroid(the_geom) column.
Any help is greatly appreciated,
Thanks,
-Josh
More information about the postgis-users
mailing list