[postgis-users] st_dwithin with 4 parameters does not use spatial index

Ben Madin lists at remoteinformation.com.au
Sun Sep 25 18:36:50 PDT 2011


Markus,

I'm only speculating, but the index is managed in the units of long / lat, and as they are not directly related to metres, in order to use the index it would have to transform all the index values on the fly, and either it can't / doesn't know how (therefore doesn't bother), or in the eyes of the query planner this is more expensive than just a full table scan. 

Maybe attaching the results of the explain would help others wiser than I am?

cheers

Ben


On 25/09/2011, at 11:25 PM, Markus Innerebner wrote:

> HI all
> 
> I migrated to postgis 1.5.3 in order to use the st_dwithin function with
> 4 parameters that supports meters as unit shown as Q1, while query Q2 is
> the old function, that does not support meters for the projection format
> 4326.
> 
> The problem is, that query Q1 does not use the spatial index, while Q2
> does it. Any idea what it could be??
> 
> Thanks for your answer
> 
> Markus
> 
> ---------------------------
> Q1: 
>    SELECT NT.id
>    FROM 
>      it_nodes N,
>      it_nodes NT
>    WHERE
>      N.ID='22' AND ST_DWITHIN(N.GEOMETRY,NT.GEOMETRY,500,true)=true
> 
> Q2:
>    SELECT NT.id
>    FROM 
>      it_nodes N,
>      it_nodes NT
>    WHERE
>      N.ID='22' AND ST_DWITHIN(N.GEOMETRY,NT.GEOMETRY,0.005)=true
> 
> 
> 
> 
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list