Long-running DELETE

From: jboes(at)nexcerpt(dot)com (Jeff Boes)
To: pgsql-sql(at)postgresql(dot)org
Subject: Long-running DELETE
Date: 2002-01-15 19:02:22
Message-ID: d40a65a1.0201151102.218752c@posting.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Okay, this is really starting to fry me:

I'm trying to delete 1000 rows from a table which is referenced by
several different other tables as a foreign key. I've turned on
debug_print_query to help track this down. When I do deletes from
some tables, I can delete hundreds of rows per second. When I delete
from the main table, it's about 1 row per second. I've turned off
every trigger in the database:

update pg_triggers set tgenabled=false;

I read that such a change might require restarting the backend, so
I've gone so far as to bounce the database after this step. What I
see in the log is

DEBUG: query: delete from a where id = 49;
DEBUG: query: SELECT oid FROM ONLY "a_r" WHERE "id" = $1 FOR UPDATE
OF "a_r"
DEBUG: query: SELECT oid FROM ONLY "a_c" WHERE "id" = $1 FOR UPDATE
OF "a_c"
DEBUG: query: SELECT oid FROM ONLY "j" WHERE "id" = $1 FOR UPDATE OF
"j"
DEBUG: query: SELECT oid FROM ONLY "a_r" WHERE "id" = $1 FOR UPDATE
OF "a_r"
DEBUG: query: SELECT oid FROM ONLY "a_c" WHERE "id" = $1 FOR UPDATE
OF "a_c"
DEBUG: query: SELECT oid FROM ONLY "j" WHERE "id" = $1 FOR UPDATE OF
"j"
DEBUG: query: SELECT oid FROM ONLY "a_r" WHERE "id" = $1 FOR UPDATE
OF "a_r"
DEBUG: query: SELECT oid FROM ONLY "a_c" WHERE "id" = $1 FOR UPDATE
OF "a_c"
DEBUG: query: SELECT oid FROM ONLY "j" WHERE "id" = $1 FOR UPDATE OF
"j"
DEBUG: query: delete from a where id = 50;
DEBUG: query: delete from a where id = 53;
etc.

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Josh Berkus 2002-01-15 19:10:05 Re: Problem with the postgresql operator.
Previous Message Steve Boyle (Roselink) 2002-01-15 16:58:46 Re: Hierarchical queries