Hi Charles, Thanks. The reason I dont have condition when selecting is it's faster than having. Because my aim is to go through every row, find values of few columns and append them to a summary table. Then delete the row from the table. So find the rows on the fly is fine for me. I have tried to reduce the number of rows to be processed, even I process 1 row in production machine, it takes 24 hours to finish. Regards, Haiming -- View this message in context: http://postgresql.nabble.com/Fast-way-to-delete-big-table-tp5903787p5903917.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general