Re: Deleting Records
От | Nörder-Tuitje, Marcus |
---|---|
Тема | Re: Deleting Records |
Дата | |
Msg-id | 16F953410A0F1346848DCB476A989CFE01D559@swtexchange2.technology.de обсуждение исходный текст |
Ответ на | Deleting Records ("Christian Paul B. Cosinas" <cpc@cybees.com>) |
Список | pgsql-performance |
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: pgsql-performance-owner@postgresql.org [mailto:pgsql-performance-owner@postgresql.org]Im 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
В списке pgsql-performance по дате отправления: