[postgis-users] Spatial Join Performance
Eric Shuman
erics at ameri-title.com
Fri Nov 17 16:28:51 PST 2006
Paul, Brent, etc...
So I have been trying the various work arounds for the TOAST issue, but
can't seem to force the query to use the spatial index on the table in
question. None of the work arounds seem to change anything. Below are some
of my stats and the query with query plan.
SELECT version();
"PostgreSQL 8.0.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.5
(Debian 1:3.3.5-13)"
SELECT postgis_version();
"1.0 USE_GEOS=1 USE_PROJ=0 USE_STATS=1"
SET enable_seqscan=OFF;
SET random_page_cost=1;
SET effective_cache_size=1000; -- Have tried up to 10000000 as well
EXPLAIN
SELECT taxlot,zone_
FROM taxlot,zoning
WHERE
taxlot.the_geom && zoning.the_geom
AND
contains(zoning.the_geom,taxlot.the_point_geom)
--------- Query Plan --------------------------
"Nested Loop (cost=100000000.00..100003612.20 rows=62135 width=23)"
" Join Filter: contains("outer".the_geom, "inner".the_point_geom)"
" -> Seq Scan on zoning (cost=100000000.00..100000132.49 rows=1149
width=1967)"
" -> Index Scan using taxlot_geom_index on taxlot (cost=0.00..3.01 rows=1
width=492)"
" Index Cond: (taxlot.the_geom && "outer".the_geom)"
------------------------------------------------
Some of the things I have also tried:
-- SELECT AddGeometryColumn('','taxlot','the_point_geom','-1','POINT',2);
-- update taxlot set the_point_geom = centroid(taxlot.the_geom);
-- create index point_index on taxlot USING GIST (the_point_geom);
-- vacuum analyze taxlot;
-- vacuum analyze zoning;
-- SELECT addGeometryColumn('','zoning','bbox','-1','GEOMETRY','2');
-- UPDATE zoning set bbox = Envelope(Force_2d(the_geom));
Would the fact that I don't have a srid set on the tables matter?
Thanks again for all the help!
---------------
Eric Shuman
More information about the postgis-users
mailing list