Re: massive memory allocation until machine crashes
От | Martijn van Oosterhout |
---|---|
Тема | Re: massive memory allocation until machine crashes |
Дата | |
Msg-id | 20070221201346.GF30975@svana.org обсуждение исходный текст |
Ответ на | Re: massive memory allocation until machine crashes (Alexander Elgert <alexander_elgert@adiva.de>) |
Список | pgsql-general |
On Wed, Feb 21, 2007 at 08:35:40PM +0100, Alexander Elgert wrote: > Yes, there are five FOREIGN keys in this table: <snip> There's your problem. You've got a trigger set to run after every delete, and you've got them set to wait until the end of the transaction. So postgres has to delete all the tuples while maintaining a list of the deleted tuples so that at the end it can run the trigger a few million times. Possibly something like (not sure about this): SET ALL CONSTRAINTS IMMEDIATE; or some such may avoid the memory usage and run the trigger straight away. > Foreign-key constraints: > "visit_cont_mech" FOREIGN KEY (contact_mech_id) REFERENCES > contact_mech(contact_mech_id) DEFERRABLE INITIALLY DEFERRED > "visit_party" FOREIGN KEY (party_id) REFERENCES party(party_id) > DEFERRABLE INITIALLY DEFERRED > "visit_role_type" FOREIGN KEY (role_type_id) REFERENCES > role_type(role_type_id) DEFERRABLE INITIALLY DEFERRED > "visit_user_agnt" FOREIGN KEY (user_agent_id) REFERENCES > user_agent(user_agent_id) DEFERRABLE INITIALLY DEFERRED > "visit_party_role" FOREIGN KEY (party_id, role_type_id) REFERENCES > party_role(party_id, role_type_id) DEFERRABLE INITIALLY DEFERRED Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to litigate.
Вложения
В списке pgsql-general по дате отправления: