Hi Jeff and all, Thank you for your help. Just update my progress, I finally made it working in production by using the second solution. The extra thing I have done was "restart postgres" and the script started to delete 2558 records per second. I guess it must has locked records or something blocked the delete, and "restart" removed the obstacle. Thanks again for the help. Regards, Haiming -- View this message in context: http://postgresql.nabble.com/Fast-way-to-delete-big-table-tp5903787p5904081.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