Индексировали ли вы столбцы, на которых фактически выбирали? Если у вас нет индекса покрытия в индексированном представлении для вашего запроса, то вы определенно найдете таблицу быстрее. Если вы делаете, однако, не должно быть никакой разницы. Пример:
CREATE VIEW dbo.denormalized
WITH SCHEMABINDING
AS
SELECT A.id,
A.col1,
A.col2,
ISNULL(B.col3, '') col3
FROM dbo.A LEFT JOIN dbo.B ON A.Bid = B.id
GO
CREATE UNIQUE CLUSTERED INDEX UIX_denormlaized
ON dbo.denormalized (id)
Пока все хорошо. Теперь мы попробуем выбрать из этого представления следующее:
SELECT id, col3 FROM denormalized
Единственными постоянными данными для этого представления является индекс в столбце идентификатора - остаток должен быть отработан на лету. Таким образом, ISNULL рассчитывается снова для каждой строки. Однако, если мы добавим этот индекс:
CREATE INDEX IX_denormalized
ON dbo.denormalized (id, col3)
тогда тот же запрос обслуживается полностью из постоянного индекса - гораздо быстрее, фактически эквивалентно производительности выбора из таблицы.