CASCADE)
При удалении из основной таблицы запрос висит в state=active (ни каких локов)
Висит очень долго. Куда смотреть?
Из основной таблицы удаляем ~4000 строк
из зависящих по ~30000
общий объем таблиц меньше 10Гиг, по нужным полям есть индекс.
explain delete ... дает быстрый план (Index scan)
explain analyze не могу дождаться
В pg_stat_activity должен быть подробный статус процесса. Какой-нибудь IO и т.п. скорее всего. Моя практика подсказывает, что такие вещи надо делать отдельными транзакциями, пачками, оптимальный размер которых подбирается опытным путём.
в том-то и дело, что ни чего нет backend_start | 2021-11-04 07:28:47.534631-04 xact_start | 2021-11-04 07:30:27.115803-04 query_start | 2021-11-04 07:38:41.006904-04 state_change | 2021-11-04 07:38:41.006905-04 wait_event_type | wait_event | state | active backend_xid | 1769280107 backend_xmin | 1769280107
индексы есть по внешним ключам?
тогда попробуйте delete сами написать из зависимых таблиц, как Роман предложил, заодно и проверите, что на всех таблицах зависимых индексы
Обсуждают сегодня