Очевидно, что сохранение нескольких разных индексов отрицательно влияет на производительность вставки и удаления. Как насчет производительности запросов: имеет ли смысл вообще хранить слишком много индексов в таблице? Повысится ли производительность запросов в любом случае с добавленным индексом (конечно, для запросов, использующих индекс вообще) или даже возможно, что производительность запросов снизится из-за слишком большого числа индексов, потому что становится необходимым сверяться со всеми индексами, чтобы получить результат?
Если в таблице присутствуют разные индексы: будут ли они все учитываться или только с точки зрения оптимизатора? Реализует ли Oracle многомерные индексы?
oracle
performance
index
paweloque
источник
источник
Ответы:
Создание плана займет немного больше времени, когда нужно рассмотреть больше индексов, но я сомневаюсь, что разница будет ощутимо существенной. В причинах падения индекса не список запросов производительности. С другой стороны, в общем случае вы не должны создавать индексы, если не знаете, что они будут использоваться для повышения эффективности запроса.
В Руководстве по концепциям Oracle приведены критерии создания индекса.
Все индексы будут рассматриваться в том смысле, что все индексы в таблицах в запросе проверяются, чтобы определить, можно ли их использовать. Те, которые могли бы быть, далее исследованы, чтобы определить полезность.
источник
Пока ваша статистика актуальна, оптимизатор на основе затрат должен принимать разумные решения о том, какие индексы использовать. Если это не так, то самое время использовать подсказки . Он никогда не будет обращаться к индексу столбца, который не является необходимым для удовлетворения запроса.
источник
Я нашел это в выборе индекса стратегии из Руководства Application разработчика . Эта страница о «выборе стратегии индекса»:
источник