Slow update with ST_Contians()

From: androclos <celgene121(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Slow update with ST_Contians()
Date: 2013-04-11 16:38:39
Message-ID: 1365698318594-5751814.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

UPDATE tbl
SET city=s.city_name
FROM shp AS s
WHERE
ST_CONTAINS(s.city_geom,geom);

With the code above i can add exact city to a GPS point. It runs about 45-50
min on 50 million rows. There are about 4000 cities in the "city" table that
have to be checked.

I have another shape file with 19 counties in a given country(only 1
country). It takes it about 1,5 hour to add counties to points.

i have a third shape file with 52 EU countries. It runs almost 25 hours with
the same sql query.

Every table has index by geom, like:

CREATE INDEX idx_txt_geom ON txt USING GIST(geom);

Q: Why is it so slow when it has to check only a few polygons ?

--
View this message in context: http://postgresql.1045698.n5.nabble.com/Slow-update-with-ST-Contians-tp5751814.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.

Browse pgsql-sql by date

  From Date Subject
Next Message Greg Sabino Mullane 2013-04-11 23:36:45 Re: Advice for index design
Previous Message Matthias Nagel 2013-04-11 07:55:20 Restrict FOREIGN KEY to a part of the referenced table