当我在sql 2000中查询视图时会发生什么? 它是否查询基础表?在表上查看是否会强制查询执行?
有一张包含1000万条记录的表格(2005年至今的记录)。
用户通常对当前年份数据感兴趣。那么,如果我在表格上创建一个视图,只使用当前年份数据,那么会在查询视图时提高查询性能吗?
我的意思是用户可以查询视图并获得更好的性能,而不是查询条件年份='2013'的表格?
答案 0 :(得分:3)
正如Damien在他的评论中所说,视图的定义已经扩展,用于构建视图的查询被“内联”到您自己的查询中,因此使用标准视图不太可能获得任何性能提升。 / p>
另一种方法是创建一个索引视图,它是一个标准视图,在其上创建聚簇索引,有效地实现它并使其像一个表一样行动。在SQL Server的非企业版中,您需要在引用索引视图时使用NOEXPAND提示以使优化器考虑索引,但您可以通过这种方式获得性能提升。
索引视图,必须为其设置的某些设置和条件有特殊注意事项,这里有详细说明: