Я использую SQL Server 2008 и начал искать с помощью индексированных представлений, помогая мне ускорить некоторые из моих запросов ... поскольку моя схема isn Базовый.Не уверен, что я понимаю, что индексированный просмотр делает за кулисами, в SqlServer
Так что, если у меня есть таблица, которая является следующее ...
**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 может быть нулевым. Поэтому мне нужно сделать это.
Теперь вопрос.
У меня есть представление индекса для детей таблицы внутренней join'd к родительской таблице (обратите внимание, я только индексировать некоторые поля из каждой таблицы) ...
(pseduo sql code)
ParentId INT
Name VARCHAR(MAX) AS ParentName
ChildId INT
Name VARCHAR(MAX) as ChildName
Boundary GEOGRAPHY
Теперь, являются данные для этих 5 полей, сериализованных/скопированных в ДРУГОЕ местоположение снова? или просмотр индекса создает только некоторые идентификаторы индекса, которые являются данными для таблицы?
но какое содержание этой таблицы? тот же материал, что и исходная таблица? так что у меня было бы два экземпляра данных ГЕОГРАФИИ? или это вторая таблица _invisible_ только цифры, которые являются индексами для разных столбцов и т. д.? –
«Результат запроса» (любой столбец, включенный в представление) будет сохранен в индексе. Также как таблица, в которой хранятся все данные столбцов. Указатели на исходные строки таблицы не сохраняются (между данными в представлении и таблицами резервных копий необязательно есть одна-единственная связь), думайте о соединениях и вычислениях) –
святой моли! я мог бы объяснить, почему мой размер db ... ну, получится массивный: P –