Long-running DELETE
От | jboes@nexcerpt.com (Jeff Boes) |
---|---|
Тема | Long-running DELETE |
Дата | |
Msg-id | d40a65a1.0201151102.218752c@posting.google.com обсуждение исходный текст |
Ответы |
Re: Long-running DELETE
Re: Long-running DELETE |
Список | 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.
В списке pgsql-sql по дате отправления: