Sql server 2008 低维护性是索引视图的替代方案,该视图可以';不能在SQL server中编制索引?

Sql server 2008 低维护性是索引视图的替代方案,该视图可以';不能在SQL server中编制索引?,sql-server-2008,triggers,window-functions,indexed-views,Sql Server 2008,Triggers,Window Functions,Indexed Views,我正在尝试索引我的视图,因为数据是相对静态的,它可以提高性能 我无法为视图编制索引,因为它包含“排名或聚合窗口函数”。有解决办法吗 SELECT r.Id, r.Value, r.TestSessionId, t.Type AS TestType, r.StudentId, ROW_NUMBER() OVER (partition BY r.StudentId, r.TestSessionId ORDER BY r.Id) AS AttemptNumber FROM dbo.Responses

我正在尝试索引我的视图,因为数据是相对静态的,它可以提高性能

我无法为视图编制索引,因为它包含“排名或聚合窗口函数”。有解决办法吗

SELECT r.Id, r.Value, r.TestSessionId, t.Type AS TestType, r.StudentId, ROW_NUMBER() OVER (partition BY r.StudentId, r.TestSessionId ORDER BY r.Id) AS AttemptNumber
FROM dbo.Responses r
INNER JOIN dbo.TestSessions ts ON r.TestSessionId = ts.Id
INNER JOIN dbo.Tests t ON ts.TestId = t.Id
这个视图只是在学生对问题的回答中添加了一个尝试次数,我认为这对于索引视图来说是一个完美的场景,但是SQL Server不支持对带有窗口函数的视图进行索引

我可以手动生成缓存表,但我希望这是低维护的,因此我不必记住这样做:


例如,也许我可以创建某种触发器(我不熟悉触发器),在基表更改时将视图插入缓存表中。。。这基本上就是视图上的索引在后台应该做的事情(尽管效率更高,因为它可以在基表数据更改时更新索引,而不是完全替换索引)。

您可以包括这三个表以及所有外键和索引的模式吗?只是想了解更多的情况。。。