[postgis-users] st_coveredby query taking too much time
Martin Davis
mbdavis at refractions.net
Tue Sep 23 08:59:07 PDT 2008
Am I right in reading the query plan to mean that the spatial index on
iller is not being used? Not sure why this would be. Perhaps try
explicitly adding the && test?
Balkan Uraz wrote:
> Dear All;
>
> I have been trying to process and update query (by st_coveredby) using
> 2 spatial tables. It seems that everything goes on track except
> that it has been taking more than 2 hours right now.
>
> All the related info is below:
>
> max_connections = 300
> shared_buffers = 256MB
> work_mem = 2MB
> maintenance_work_mem = 32MB
> max_fsm_pages = 153600
> wal_buffers = 1MB
> checkpoint_segments = 16
> effective_cache_size = 2GB
> CPU: Quad Core Intel Xeon 2.33GHz
> Memory: 4GB
> balkan_20080908_0_0_1_postgis=# explain update yolorta_all set city =
> (select iladi from iller where st_coveredby(yolorta_all.the_geom,
> iller.the_geom) = 'TRUE');
> QUERY PLAN
> -------------------------------------------------------------------------
> Seq Scan on yolorta_all (cost=0.00..3458534.64 rows=1526838 width=675)
> SubPlan
> -> Seq Scan on iller (cost=0.00..2.21 rows=1 width=7)
> Filter: (($0 && the_geom) AND _st_coveredby($0, the_geom))
> (4 rows)
> balkan_20080908_0_0_1_postgis=# \d iller
> Table "public.iller"
> Column | Type | Modifiers
> ----------+-----------------------+-----------------------------------------
> ------------
> gid | integer | not null default
> nextval('iller_gid_seq'::regclass)
> plakano | integer |
> iladi | character varying(15) |
> ilceadi | character varying(20) |
> the_geom | geometry |
> Indexes:
> "iller_pkey" PRIMARY KEY, btree (gid)
> "iller_gid" UNIQUE, btree (gid) CLUSTER
> "iller_the_geom_gist" gist (the_geom)
> Check constraints:
> "enforce_dims_the_geom" CHECK (ndims(the_geom) = 2)
> "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) =
> 'MULTIPOLYGON'::text OR the_geom IS NULL)
> "enforce_srid_the_geom" CHECK (srid(the_geom) = 4326)
> balkan_20080908_0_0_1_postgis=# \d yolorta_all
> Table "public.yolorta_all"
> Column | Type | Modifiers
> -------------+-----------------------+--------------------------------------
> ---------------------
> gid | integer | not null default
> nextval('yolorta_all_gid_seq'::regclass)
> adi | character varying(50) |
> tipi | character varying(25) |
> rnname | character varying(10) |
> adiuluslar | character varying(5) |
> kkno | character varying(25) |
> the_geom | geometry |
> city | character varying(50) |
> country | character varying(50) |
> district | character varying(50) |
> subdistrict | character varying(50) |
> Indexes:
> "yolorta_all_pkey" PRIMARY KEY, btree (gid)
> "yolorta_gid" UNIQUE, btree (gid) CLUSTER
> "yolorta_all_the_geom_gist" gist (the_geom)
> Check constraints:
> "enforce_dims_the_geom" CHECK (ndims(the_geom) = 2)
> "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) =
> 'MULTILINESTRING'::text OR the_geom IS NULL)
> "enforce_srid_the_geom" CHECK (srid(the_geom) = 4326)
>
> Is this time spent for the query meaningful? What can I do for faster
> spatial queries in this context?
>
> Regards,
>
> Balkan.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022
More information about the postgis-users
mailing list