If you're de-duping a whole table, no need to create indexes, as it's gonna have to hit every row anyway. Fastest way I've found has been: select a,b,c into newtable from oldtable group by a,b,c; On pass, done. If you want to use less than the whole row, you can use select distinct on (col1, col2) * into newtable from oldtable; -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general