Oracle Unusable Index снизит производительность? - PullRequest
0 голосов
/ 04 ноября 2019

Я видел, что неиспользуемый индекс замедлял производительность запроса более чем на 4 часа ...

В общем, будет ли неиспользуемый индекс замедлять запрос? В каких условиях это улучшит производительность.

Спасибо.

1 Ответ

1 голос
/ 04 ноября 2019

Когда создается индекс, или некоторые разделы или подразделы индекса UNUSABLE, для непригодного объекта сегмент не выделяется. Неиспользуемый индекс или раздел индекса не занимает места в базе данных.

Дополнительную документацию можно найти по ссылке ниже:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/CREATE-INDEX.html#GUID-1F89BBC0-825F-4215-AF71-7588E31D8BFE

Вы можете проверить план query optimizerили query execution планируете проверить производительность запроса.

Наличие большого количества индексов в таблице снижает производительность DML, поскольку база данных также должна обновлять индексы. Индексы могут быть использованы (по умолчанию) или непригодны. Неиспользуемый индекс не поддерживается операциями DML и игнорируется оптимизатором. Неиспользуемый индекс может улучшить производительность массовых загрузок.

Я вижу, вы можете попробовать следующие два сценария:

  1)  Deleting from large table without having index

Drop indexes - Удаление индексов перед массовым удалением и последующее восстановление их послеможет улучшить производительность удаления, потому что каждое отдельное удаление должно будет удалять себя из индекса, вызывая замедление. Oracle удаляет записи индекса без повторной балансировки дерева индексов («логическое удаление»), но это все еще занимает много времени, особенно если у вас много индексов в целевой таблице

   2) Parallel Delete

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

ALTER SESSION ENABLE PARALLEL DML;
DELETE /*+ parallel(table, 20) */
  FROM  table

Затем вы можете выбрать из двух приведенных выше сценариев, какой из них работает быстрее для вашего запроса на удаление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...