I need to merge 2 tables: update d set c1=s.c1, c2=s.c2... from s where d.pk=s.pk; insert into d (pk, c1, c2, ...) select pk, c1, c2, c3 from s where s.pk not in (select pk from d); Any strategy to make it faster? Including modifying postgres.conf temporary? Considering I've no concurrency problems. The tables I'm dealing with are "read only" for everything else other than the merge process. thanks -- Ivan Sergio Borgonovo http://www.webthatworks.it