Как вы уже знаете из предыдущей главы, существуют два специальных типа индексов: индексы для вычисляемых столбцов и индексы для представлений. В этом разделе описываются индексы для представлений.
Представление всегда содержит запрос, который работает как фильтр. При отсутствии индексов, созданных для конкретного представления, Database Engine динамически создает результирующий набор при каждом запросе, ссылающемся на представление. («Динамически» означает, что если вы изменяете содержимое таблицы, соответствующее представление всегда вернет новую информацию.) Если представление содержит вычисления, основанные на одном или более столбцов таблицы, это вычисление будет выполняться каждый раз, когда вы обращаетесь к представлению.
Динамическое создание результирующего набора для запроса может снизить производительность, если представление в своем операторе select обрабатывает много строк из одной или более таблиц. Если такое представление часто используется в запросах, вы можете значительно повысить производительность при помощи создания кластеризованного индекса для этого представления. Создание кластеризованного индекса означает, что система материализует динамические данные в страницах листьев индексной структуры.
Database Engine позволяет создавать индексы для представлений. Такие представления называются индексированными или материализованными представлениями. Когда для представления создается уникальный кластеризованный индекс, то при выполнении представления результирующий набор сохраняется в базе данных таким же образом, как сохраняется таблица с кластеризованным индексом. Это означает, что узлы листьев В-дерева кластеризованного индекса содержат страницы данных.