0

Есть ли какие-либо способы выполнения удаления на каскаде без блокировки всех детей tables.Also удаления выполняется на ключ, который не является внешним ключом в дочерних таблицах .The внешний ключ у ребенка таблиц indexed.Currently ситуация, что когда удаление происходит замки на всех дочерних таблиц, которые не позволяют вставки произойти из-за замковУдалить на каскаде для Oracle 11g

благодаря

шри

+0

Удалить на каскаде не требуют полной таблицы блокировок - пожалуйста, предоставьте определения примера таблицы с деталями ограничений и индексов, чтобы мы могли помочь. –

ответ

0

в качестве решения, вы можете добавить поле с двумя возможными значениями «Y»/«N» («1»/«0» и т. д.), которые покажут, что запись уже удалена. Затем вы можете построить задание (it is ok for long term operation) Этот процесс будет работать в фоновом режиме, он будет собирать удаленные строки и удалять их.

Второй путь, попытайтесь запустить транзакцию, и когда вы видите ваш стол получил полный замок выполнить:

ALTER TABLE <<YOUR_LOCKED_TABLE_NAME>> DISABLE TABLE LOCKS 

Тогда ваша сделка должна закончить за исключением ORA-00069, если да, то ваш стол действительно и вам нужно проверить, есть ли у вас индексы B-Tree на вашем внешнем ключе, и вы не используете индексы растровых изображений.

Смежные вопросы