Oracle Удалить запрос оптимизации - PullRequest
0 голосов
/ 16 марта 2020
DELETE FROM   BATCH_T   WHERE   BatchId   In (  BatchIdList  )    AND   Status   = 'CLOSED'

Приведенный выше запрос занимает 3 минуты до конца sh. Кто-нибудь может помочь мне сократить время отклика.

1 Ответ

1 голос
/ 16 марта 2020

Если список пакетов небольшой, рассмотрите возможность добавления в таблицу следующего индекса:

CREATE INDEX batch_idx ON BATCH_T (BatchId, Status);

Если у вас очень длинный список пакетов, рассмотрите возможность добавления этих значений в новую таблицу BATCH_LIST , Затем убедитесь, что для этой новой таблицы существует следующий индекс:

CREATE INDEX other_idx ON BATCH_LIST (BatchId);

Первый индекс должен помочь любой версии.

...