what about firing a DELETE FROM qc_session S WHERE EXISTS (SELECT * FROM item_qc_doer i WHERE i.item_id = s.item_id);
and DELETE FROM item_qc_doer S WHERE EXISTS (SELECT * FROM item_qc_doer i WHERE i.item_id = s.item_id); this might be faster. another way to speed up deletes might be disabling foreign keys. also a SET ENABLE_SEQSCAN=FALSE; can speed up queries (force use of indices for access) do you have a EXPLAIN for us ? do you have a index on item_id on your tables ? questions by questions ;-) mfg -----Ursprüngliche Nachricht----- Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Auftrag von Christian Paul B. Cosinas Gesendet: Donnerstag, 20. Oktober 2005 10:44 An: pgsql-performance@postgresql.org Betreff: [PERFORM] Deleting Records Hi! I'm experiencing a very slow deletion of records. Which I thin is not right. I have a Dual Xeon Server with 6gig Memory. I am only deleting about 22,000 records but it took me more than 1 hour to finish this. What could possibly I do so that I can make this fast? Here is the code inside my function: FOR temp_rec IN SELECT * FROM item_qc_doer LOOP DELETE FROM qc_session WHERE item_id = temp_rec.item_id; DELETE FROM item_qc_doer WHERE item_id = temp_rec.item_id; END LOOP; Item_qc_oder table contains 22,000 records. I choose Polesoft Lockspam to fight spam, and you? http://www.polesoft.com/refer.html ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org