Hi, Would it be faster if you create Partial Index on inter field (btree) where inter > 0
and then UPDATE grille SET inter = 0 WHERE inter > 0 Kind Regards, Misa 2011/5/9 F T <ouk...@gmail.com> > Hi list > > I use PostgreSQL 8.4.4. (with Postgis 1.4) > > I have a simple update query that takes hours to run. > The table is rather big (2 millions records) but it takes more than 5 hours > to run !! > > The query is just : > *UPDATE grille SET inter = 0* > > The explain command seems ok : > "Seq Scan on grille50 (cost=0.00..499813.56 rows=2125456 width=494)" > > The table as a geometry field geom (simple, it only stores squares) > The table définition is : > *CREATE TABLE grille50 > ( > id integer NOT NULL, > geom geometry, > inter integer DEFAULT 0, > oc1 integer, > oc2 integer, > occalc integer, > CONSTRAINT grille_pkey PRIMARY KEY (id), > CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2), > CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = > 'POLYGON'::text OR geom IS NULL), > CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 2154) > ) > WITH ( > OIDS=TRUE > ); > ALTER TABLE grille OWNER TO postgres; > CREATE INDEX grille_geom ON grille USING gist (geom); > CREATE INDEX grille_id ON grille USING btree (id);* > > > So any ideas why is it soo long??? > > Many thanks > > Fabrice > > > > >