Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Долгое удаление записей из связанной таблицы  [new]
polin11
Member

Откуда:
Сообщений: 156
Есть таблица Document (5 млн. записей) и связанная таблица DocumentLinks (35 млн. записей) связь 1-М (один ко многим),
у таблицы DocumentLinks поля Id, IdLink, DocumentId, DocumentLink все они связаны с первичным ключом из таблицы Document.

При удалении записей из таблицы Document каскадно удаляются связанные записи из DocumentLinks - это происходит очень долго (одна запись удаляется 6 сек.), даже в том случае когда связанных записей нет в DocumentLinks.
Индексы созданы по всем полям Id, IdLink, DocumentId, DocumentLink.


"Delete on "Document"  (cost=0.42..8.44 rows=1 width=6) (actual time=0.043..0.043 rows=0 loops=1)"
"  Buffers: shared hit=6"
"  ->  Index Scan using "iDocument-FullCode" on "Document"  (cost=0.42..8.44 rows=1 width=6) (actual time=0.026..0.027 rows=1 loops=1)"
"        Index Cond: ("FullCode" = '2021'::text)"
"        Buffers: shared hit=4"
"Planning time: 0.941 ms"
"Trigger for constraint rDocumentLinks-Id: time=8.784 calls=3"
"Trigger for constraint rDocumentLinks-IdLink: time=59818.664 calls=3"
"Trigger for constraint rDocumentLinks-DocumentId: time=51.304 calls=3"
"Trigger for constraint rDocumentLinks-DocumentLink: time=24.373 calls=3"
"Execution time: 60018.958 ms"



Вопрос как можно ускорить удаление записей?
15 фев 21, 01:53    [22280893]     Ответить | Цитировать Сообщить модератору
 Re: Долгое удаление записей из связанной таблицы  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1246
polin11,

проверьте существование индексов под FK вокруг rDocumentLinks.

pg_stat_statements.track = all или auto_explain.log_nested_statements могут пролить дополнительный свет на выполняемые при обработке FK операции.
15 фев 21, 10:24    [22280984]     Ответить | Цитировать Сообщить модератору
 Re: Долгое удаление записей из связанной таблицы  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4581
polin11,

Скорее всего не хватает индекса по DocumentLinks(IdLink)

но вообще покажите структуру этой самой DocumentLinks вместе с индексами.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
15 фев 21, 13:38    [22281085]     Ответить | Цитировать Сообщить модератору
 Re: Долгое удаление записей из связанной таблицы  [new]
polin11
Member

Откуда:
Сообщений: 156
да, проблема в индексе, я был невнимателен, спасибо
15 фев 21, 16:29    [22281225]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить