sql - 将记录插入索引视图使用的表中的性能问题?
问题描述
我有一个相当大的表,我们称 2B 记录在 200 个分区之间平均分配(SQL Server 2012)。
每天,我有一个过程需要 6 个小时来创建一个新分区并插入 1000 万行。
我认为索引视图可以提高我的报告性能,但我们有点担心插入是否存在任何性能问题。
因此,如果我在我的大表上创建索引视图,这些索引将在什么时候刷新:每次插入之后,还是用户第一次从索引视图中读取?
提前致谢
解决方案
索引视图将在数据修改操作(例如 INSERT、UPDATE、DELETE)时刷新。所以它会影响这些操作的性能。
但对于每一种这样的情况,最好的办法是根据具体情况确定它对插入的影响程度。如果读取性能是您的目标,您可以接受插入速度降低。
我也可以推荐一篇好文章 - https://www.brentozar.com/archive/2017/03/indexed-views-data-modifications/ ...它说的有趣的是:
当我们在表中插入单行时,SQL 能够确定哪些数据需要更新索引视图索引。
因此,如果插入的数据不影响索引视图,它不会更新它们。
推荐阅读
- node.js - 无法通过 aws-sdk 节点 js 连接到 AWS
- javascript - 用不同的标识符替换对象属性名称
- ios - 什么是 Xcode“后台处理”后台模式?
- java - 从实时 Firebase 数据库中检索字符串
- virtualbox - 在 vm 中禁用时间同步
- swift - UIStackView 子视图仅在 isHidden 设置为 false 时才动画
- flutter - 如何使 AppBar 居中以及如何减小 PrefrerredSize 中的领先图标大小?
- c# - 如何将 Json 转换为字符串然后显示在列表中
- javascript - 如何在具有自己路径的 Javascript 中使用 FileReader?
- angular - 如何使用 Angular 8 中的列规范将任何对象传递到通用概述中?