2

我知道索引会损害插入/更新性能,但我正在尝试排除故障并确定查询性能和插入/更新性能之间的正确平衡。

我们为一些非常复杂的查询创建了许多视图(大约 20 个)。他们通过按键搜索真的很慢(可能需要 20 秒才能扫描 5 到 10 个按键)。

对这些视图进行索引(在各种关键列上使用聚集索引和非聚集索引)可以将它们的性能提高 80 倍到 100 倍。它还损害了插入/更新性能,以至于将大约 100 行插入各种相关表的脚本需要大约 45 秒才能运行,而不是即时运行。

我不想为这些视图走 OLAP 路线(它会增加一个全新的复杂层......并且这些视图当前是可更新的,这会造成反向同步问题)......所以我正在尝试弄清楚如何平衡查询性能与插入/更新性能。

有人可以建议如何诊断特定的问题索引 - 以及减少它们对插入/更新影响的潜在方法吗?

我已经尝试过使用覆盖索引、包含 INCLUDE 的索引和复合聚集索引作为替代方法,看看它是否有所作为(实际上并没有)。

谢谢。

4

1 回答 1

0

对于这种情况,请使用单列过滤索引,并避免使用超过两列的复合索引。

于 2019-02-05T19:31:48.073 回答