Не уверен, что я понимаю, что делает индексированное представление за кулисами в 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 ответ
Да. Индексированное представление - это еще одна невидимая таблица, которая обновляется автоматически при изменении базовых таблиц.