首页 > 解决方案 > 将记录插入索引视图使用的表中的性能问题?

问题描述

我有一个相当大的表,我们称 2B 记录在 200 个分区之间平均分配(SQL Server 2012)。

每天,我有一个过程需要 6 个小时来创建一个新分区并插入 1000 万行。

我认为索引视图可以提高我的报告性能,但我们有点担心插入是否存在任何性能问题。

因此,如果我在我的大表上创建索引视图,这些索引将在什么时候刷新:每次插入之后,还是用户第一次从索引视图中读取?

提前致谢

标签: sqlsql-serverindexed-view

解决方案


索引视图将在数据修改操作(例如 INSERT、UPDATE、DELETE)时刷新。所以它会影响这些操作的性能。

但对于每一种这样的情况,最好的办法是根据具体情况确定它对插入的影响程度。如果读取性能是您的目标,您可以接受插入速度降低。

我也可以推荐一篇好文章 - https://www.brentozar.com/archive/2017/03/indexed-views-data-modifications/ ...它说的有趣的是:

当我们在表中插入单行时,SQL 能够确定哪些数据需要更新索引视图索引。

因此,如果插入的数据不影响索引视图,它不会更新它们。


推荐阅读