Oracle изменить индекс / перестроить - PullRequest
4 голосов
/ 07 декабря 2010

Если я перестрою непригодный индекс, используя alter index x rebuild, будет ли пересмотрен план выполнения для любого SQL, который использовал этот индекс ранее?

Я знаю, что статистика пересчитывается как часть перестройки в версии БД, которую я использую - Oracle 10.2.0.4.0.

Я не хочу использовать пакет dbms_stats для решения этой проблемы, поскольку у меня уже есть свежая статистика!

1 Ответ

7 голосов
/ 07 декабря 2010

, поскольку индекс в настоящее время не может быть использован, ни один запрос SQL не использует индекс. Когда вы собираете статистику (либо с помощью перестройки, либо с помощью пакета dbms_stats), все операторы для базовой таблицы будут повторно анализироваться (hard-parse) при следующей отправке. Планы могут измениться из-за обновления статистики.

Поэтому перестройка непригодного индекса сделает его видимым и пригодным для использования всеми операторами, даже теми, которые были проанализированы ранее.

...