Индексированное представление сервера Sql

ОК, я запутался в индексированных представлениях сервера sql (используя 2008)

У меня есть индексированное представление, называемое

НазначениеПодробно

когда я смотрю на план выполнения для

select * from AssignmentDetail

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

Я бы подумал, что план выполнения будет просто сканированием кластерного индекса PK_AssignmentDetail (имя кластерного индекса для моего представления), но это не так.

Кажется, что с этим индексированным представлением нет прироста производительности, что мне делать? Должен ли я также создать некластеризованный индекс со всеми столбцами, чтобы ему не приходилось попадать во все другие индексы?

Любое понимание будет с благодарностью


person Jose    schedule 07.05.2010    source источник


Ответы (2)


Версия Enterprise SQL Server достаточно умна, чтобы искать и использовать индексированные представления, когда они существуют. Однако, если вы не используете редакцию Enterprise, вам нужно явно указать ей использовать индексированное представление, например:

select * 
from AssignmentDetail WITH (NOEXPAND)
person D'Arcy Rittich    schedule 07.05.2010

Смысл индексированного представления не в том, чтобы ускорить

SELECT * FROM MyView

То, что поможет вам повысить производительность, — это индекс в столбце самого представления, например.

SELECT * FROM MyView WHERE ViewColumnA = 'A' and ViewColumnB = 'B'

Поэтому у вас может быть индекс для ViewColumnA и ViewColumnB, который может фактически существовать в разных таблицах.

person Robin Day    schedule 07.05.2010
comment
Повторный выбор * не имеет значения -- Как так? Когда базовое представление содержит 22 соединения, 16 фильтров и цирковой пони, не ускоряет ли материализацию одна точка индексированного представления? - person EBarr; 28.09.2012
comment
@EBarr Какого цвета пони? - person D'Arcy Rittich; 29.09.2012
comment
@RedFilter — бело-серый, с оранжевой гривой; в конце концов, это StackOverflow. - person EBarr; 29.09.2012