Как табличные индексы вступают в игру при использовании представления? - PullRequest
10 голосов
/ 17 декабря 2009

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

Ответы [ 2 ]

9 голосов
/ 17 декабря 2009

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

Относительно преимуществ создания индексов в представлении см. эту статью MS Technet . Небольшая выдержка:

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

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

Оптимизатор запросов переписывает запрос и «выравнивает» использование подзапросов (что действительно является представлением). Поэтому будут использоваться базовые индексы.

...