Я пытаюсь создать индексированный вид в SQL Server, и мне было интересно, если мне нужно индексировать столбцы представления.SQL Server индексированные представления
Я спрашиваю об этом, потому что представление состоит из таблиц, которые уже имеют индексированные столбцы.
Так что если TABLE1
имеет столбец FOO
уже проиндексирован как не кластерный индекс, я должен добавить индекс для столбца FOO
для вновь созданного представления для SQL Server, чтобы использовать индекс?
Или SQL Server знает, использовать индекс в TABLE1 при поиске в представлении?
мнение выглядит следующим образом
CREATE VIEW [dbo].[v_eventActivity]
WITH SCHEMABINDING
AS
SELECT ea.id,
e.eventID,
e.name,
ea.userID,
ea.activityTypeID,
ea.timeStamp,
ea.visitDuration
FROM dbo.table1 e,
dbo.table2 ea
WHERE e.eventID = ea.eventID
я собираюсь быть поиск на всех этих столбцов вместе.
Как указано выше, в таблице 1 и таблице2 все индексы уже имеют указанные столбцы.
Я думал, что я знал ответ на этот вопрос, но в письменном виде он определил, что на самом деле у меня нет. Хороший Q! лучший способ узнать, может быть, попробовать и посмотреть. также вы должны указать версию SS. – JNK
Обычно индексированный вид не представляет всю таблицу, поэтому представление индекса в определенном столбце обычно не имеет смысла. Вы уже создали представление? Можете ли вы поделиться структурой таблицы, индексом, о котором говорите, и определением для представления (включая его индексы)? –
Я действительно попробовал. В плане выполнения запроса говорится, что он использует индекс исходных таблиц. Но я просто хотел убедиться. – KDV