[postgis-users] Query performanace against huge point table

Kevin Neufeld kneufeld at refractions.net
Tue Nov 20 12:53:05 PST 2007


ST_DWithin(...) is a simple sql wrapper around the following sql string:
"SELECT $1 && ST_Expand($2,$3) AND $2 && ST_Expand($1,$3) AND 
ST_Distance($1, $2) < $3"
where $1,$2,and $3 are your parameters.

So, unless you have a GIST functional index of "transform(the_geom, 
2163)" on your geometry column, your query won't use any indexes.

I suggest to either create the mentioned function index or create a new 
geometry column of your points in the 2163 projection and do something 
like this:

SELECT *
  FROM table a,
       (SELECT transform(GeomFromText('POINT(-122.0527 
37.323)',4326),2163) AS the_geom) b
  WHERE ST_DWithIn(a.the_geom, b.the_geom, 1000);

Cheers,
Kevin

Santosh Gaikwad wrote:
>
> Hi,
>
>  
>
> I have a point table which contains 300 millions of records. I am 
> using following query to fetch the records from the table within 
> certain radius.
>
>  
>
> Select *
>
>    from table
>
>    where
>
>      st_dwithin(
>
>        transform(the_geom,2163),
>
>        transform(GeomFromText('POINT(-122.0527 37.323)',4326),2163),
>
>        1000
>
>      );
>
>  
>
> But it takes long time to get the result. I am seeking help.
>
>  
>
> Thanks & Regards,
>
>  
>
> Santosh Gaikwad
>
> Senior Software Developer
>
> Saama Technologies (India) Pvt. Ltd.,
> Unit No.101-102, First floor,
> Weikfield IT CITI INFO PARK, 
> Weikfield estates, 
> Pune Nagar Road,
> Pune - 411 014. India
> Phone : +91 20 66071397
>
> Mobile: +91-9422005927
> E-mail :Santosh.Gaikwad at saama.com
>
> http://www.saama.com
>
>  
>
> _______________________________________________
> 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