关于视图和索引 (SQL Server 2008 R2)
Posted
技术标签:
【中文标题】关于视图和索引 (SQL Server 2008 R2)【英文标题】:On Views and Indexes (SQL Server 2008 R2) 【发布时间】:2012-02-16 14:41:36 【问题描述】:我创建了一系列在一个相当大的表上运行的视图。该表已正确索引,性能完全足够。我想向数据库添加一个额外的视图层,它们是视图的有效视图。我想知道的是 SQL Server 是否足够聪明,可以在构建查询时使用基础表上的索引,或者我是否需要以某种方式索引第一层视图?
【问题讨论】:
这可以通过执行计划显示轻松检查 实际数据将从物理上包含数据的表或视图中获取。因此 Sql server 引擎除了使用所有可用的加速器,即 indeces 之外,无事可做。 【参考方案1】:是的。视图(未持久化)只不过是存储在数据库中的查询。如果您有一个名为 view1 的视图作为 select * from table1 并执行 select * from view1,SQL Server 会自动将其转换为 select * from table1 然后构建执行计划
如果您增加对象链以添加更多视图,则适用相同规则。
【讨论】:
以上是关于关于视图和索引 (SQL Server 2008 R2)的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 R2 和索引视图中的执行计划
了解 SQL Server 2008 R2 中索引视图中的列类型
在 Sql Server 2008 中索引视图是不是实际上复制了原始数据?