У меня есть таблица T с 500 000 записей. Эта таблица является иерархической таблицей. Моя цель - обновить таблицу, присоединившись к той же таблице на основе некоторого условия для отношений родитель-потомок. . Запрос на обновление занимает очень много времени, потому что количество строк действительно велико. Я создал уникальный индекс в столбце, который помогает идентифицировать строки для обновления (знаковые x и Y). После создания индекса стоимость уменьшилась, но все же запрос выполняет намного медленнее.Настройка Oracle Sql с индексом
Этот формат мой запрос
update T
set a1, b1
= (select T.parent.a1, T.parent.b1
from T T.paremt, T T.child
where T.parent.id = T.child.Parent_id
and T.X = T.child.X
and T.Y = T.child.Y
после создания индекса план выполнения показывает, что делает просмотр индекса для CRS.PARENT, но будет для полного сканирования таблицы для для CRS.CHILD, а также во время обновления в результате запрос навсегда завершается.
Пожалуйста, предложите какие-либо советы или рекомендации, чтобы решить эту проблему
Запустите 'EXPLAIN PLAN FOR update T .... (resto uf your query) ....', затем 'SELECT * FROM table (DBMS_XPLAN.Display)', затем скопируйте результат последнего запроса (в виде текста !!! - не bitmap !!!) и добавьте его к вопросу. Подробнее об команде команды plan можно найти здесь: https://docs.oracle.com/cd/B28359_01/server.111/b28274/ex_plan.htm#PFGRF009 – krokodilko