我知道索引会损害插入/更新性能,但我正在尝试排除故障并确定查询性能和插入/更新性能之间的正确平衡。
我们为一些非常复杂的查询创建了许多视图(大约 20 个)。他们通过按键搜索真的很慢(可能需要 20 秒才能扫描 5 到 10 个按键)。
对这些视图进行索引(在各种关键列上使用聚集索引和非聚集索引)可以将它们的性能提高 80 倍到 100 倍。它还损害了插入/更新性能,以至于将大约 100 行插入各种相关表的脚本需要大约 45 秒才能运行,而不是即时运行。
我不想为这些视图走 OLAP 路线(它会增加一个全新的复杂层......并且这些视图当前是可更新的,这会造成反向同步问题)......所以我正在尝试弄清楚如何平衡查询性能与插入/更新性能。
有人可以建议如何诊断特定的问题索引 - 以及减少它们对插入/更新影响的潜在方法吗?
我已经尝试过使用覆盖索引、包含 INCLUDE 的索引和复合聚集索引作为替代方法,看看它是否有所作为(实际上并没有)。
谢谢。