Представьте, что у вас есть целая комната, полная разных видов фруктов, разбросанных повсюду. Представление BASE_VIEW похоже на выражение: «Извлеките все фрукты в этой комнате».
OUTER_VIEW - это как сказать: «Извлеките все апельсины из этой комнаты». Если фрукт не заказан каким-либо образом, вы потратите примерно столько же времени, сколько и BASE_VIEW на поиск всех апельсинов.
Теперь представьте, что у вас есть все фрукты в корзинах. Схватить все апельсины становится легко, потому что вы точно знаете, где они.
Добавление индекса в SomeField - это то, что упорядочивает данные так, чтобы им не приходилось искать всю комнату фруктов. Существуют некоторые ограничения на то, когда индекс может помочь или нет. На основании количества строк в вашей таблице оптимизатор оракула может решить, что быстрее все равно просто захватить все строки. Я предлагаю вам прочитать это руководство, чтобы определить правильный способ индексации таблиц: Используйте The Index, Люк . Это мне очень помогло при начале индексации.
Если SomeField напрямую не приходит из MYTABLE и является просто созданным полем в BASE_VIEW, то это может помочь индексировать поле, которое создает SomeField. Нам трудно знать, не видя данных.