来自非索引视图的SQL Server SELECT,它引用索引表

时间:2012-01-27 15:18:59

标签: sql sql-server reporting-services indexing ssrs-2008

如果我从一个非索引的视图中进行选择,并且视图是从索引表中选择的,那么sql server是否会使用索引,或者我必须索引视图。

4 个答案:

答案 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