Как индексы таблицы вступают в игру при использовании представления?

У меня есть представление, которое собирает данные из нескольких таблиц. Несмотря на отсутствие индексов на самом представлении, все, что использует представление, похоже, извлекает выгоду из базовых таблиц, имеющих индексы. Используются ли они автоматически? Если это то, что является целью создания индексов на ваших взглядах? Любые рекомендуемые статьи по этому вопросу будут приветствоваться.

Ответ 1

Да, базовые индексы таблицы используются автоматически - представление просто извлекает данные из базовых таблиц.

Что касается преимуществ создания индексов в представлении, см. эту статью MS Technet. Малая выдержка:

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

  • Агрегации можно предварительно вычислить и сохранить в индексе, чтобы свести к минимуму дорогостоящие вычисления во время выполнения запроса.
  • Таблицы могут быть предварительно добавлены и результирующий набор данных сохранен.
  • Можно сохранить комбинации объединений или агрегатов.

Ответ 2

Оптимизатор запросов перезаписывает запрос и "выравнивает" использование подзапросов (что действительно представляет собой представление). Таким образом, будут использоваться базовые индексы.