如果我从一个非索引的视图中进行选择,并且视图是从索引表中选择的,那么sql server是否会使用索引,或者我必须索引视图。
答案 0 :(得分:8)
如果SQL Server决定这将有助于查询时间,它将使用索引。无需创建索引视图,只需让您的表索引在视图中工作即可!
相反,索引视图允许您在派生(和非派生)数据上创建索引,在某些情况下可以提供巨大的性能提升。
答案 1 :(得分:3)
是的,当您从简单视图(非持久性)中进行选择时,SQL Server使用视图的查询来创建计划。
所以如果你有这样的观点:
create view1 as
select ID, name from table1
你做了:
select ID, name from view1
内部,与执行
完全相同select ID, name from table1
答案 2 :(得分:1)
如果我从未编入索引的视图中进行选择,并且视图是从索引中选择的 表,
这是不可能的。
请参阅,视图未编入索引正常文件甚至不存在-it是在执行时展开的宏。所以最后你从索引表中查询。
UNless你实现了视图(完全不同的高级主题),视图非常简洁。
答案 3 :(得分:-1)
如果我没记错,它将使用索引创建视图,但针对视图的查询不使用索引。在讨论视图索引时,有很多注意事项。
看一下这个链接,了解sql server索引视图的所有细节
http://msdn.microsoft.com/en-us/library/aa933148(v=sql.80).aspx