【问题标题】:creating view on table enhance the query performance on sql 2000?在表上创建视图可以提高 sql 2000 的查询性能?
【发布时间】:2014-01-23 15:51:48
【问题描述】:

当我在 sql 2000 中查询视图时会发生什么? 它是否查询基础表?对表进行视图是否可以加快查询执行?

有一张表有1000万条记录(2005年至今的记录)。

用户通常对当年的数据感兴趣。所以如果我在表上创建一个视图,只使用当年的数据,那么在查询视图时会提高查询性能吗?

我的意思是用户可以查询视图并获得更好的性能,而不是使用 where 条件 year='2013' 查询表?

【问题讨论】:

  • 视图(没有任何其他工作)就像宏 - 它们没有任何自己的存储空间,并且它们有效地“扩展”到它们出现的查询正文中,之前该查询已优化。

标签: sql sql-server sql-server-2000


【解决方案1】:

正如 Damien 在他的评论中所说,视图的定义被扩展,用于构建它们的查询被“内联”到您自己的查询中,因此使用标准视图不太可能提高性能。

另一种方法是创建一个索引视图,这是一个标准视图,上面创建了一个聚集索引,有效地实现它并使它像一张表一样工作。在 SQL Server 的非企业版中,您需要在引用索引视图时使用 NOEXPAND 提示,以使优化器将索引考虑在内,但您可以通过这种方式获得性能提升。

索引视图有一些特殊注意事项,必须设置某些设置和条件才能使其工作,这里都详细说明:

Creating an Indexed View

【讨论】:

  • 好一个。我完全忘记了索引视图在 SQL Server 2000 中可用。
  • 在 sql 2000 中是否提供索引视图?
  • 是的,请看文章,这是一篇 SQL Server 2000 文章
猜你喜欢
  • 2020-09-17
  • 2015-05-13
  • 2012-04-19
  • 2011-10-13
  • 2014-11-14
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多