Не уверен, что я понимаю, что индексное представление делает за кулисами, в SqlServer - PullRequest
2 голосов
/ 28 августа 2009

Я использую 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 Ответ

2 голосов
/ 28 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...