Не уверен, что я понимаю, что делает индексированное представление за кулисами в SqlServer

Я использую SQL Server 2008 и начал обнаруживать, что индексированные представления помогают мне ускорить некоторые из моих запросов... так как моя схема не является базовой.

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

**ParentTable
ParentId INT PK IDENTITY
Name VARCHAR(MAX)

**ChildTable
ChildId INT PK IDENTITY
ParentId INT (FK to the table above)
Name VARCHAR(MAX)
Boundary GEOGRAPHY
CentrePoint GEOGRAPHY
CentrePointFlattened GEOMETRY

Таким образом, для каждой строки в родительской таблице может быть от нуля до нескольких детей.

Во-первых, если я сделаю индексный просмотр дочерних элементов, он не будет работать, если поле ParentId может быть обнуляемым. Поэтому мне нужно сделать это необходимым.

Теперь вопрос.

У меня есть представление индекса внутреннего соединения дочерней таблицы с родительской таблицей (обратите внимание, я только индексирую некоторые поля из любой таблицы)...

(pseduo sql code)
ParentId INT
Name VARCHAR(MAX) AS ParentName
ChildId INT
Name VARCHAR(MAX) as ChildName
Boundary GEOGRAPHY

Теперь, данные для этих 5 полей снова сериализованы / скопированы в ДРУГОЕ место? или представление индекса создает только некоторые идентификаторы индекса, которые являются данными для таблицы?

1 ответ

Решение

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

Другие вопросы по тегам