SQL Server索引INSERT/UPDATE性能



我知道索引会影响插入/更新性能,但我正在努力解决问题,并确定查询性能和插入/更新之间的正确平衡。

我们已经为一些非常复杂的查询创建了许多视图(大约20个)。它们的按键搜索速度非常慢(扫描5到10个按键可能需要20秒)。

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

我不想对这些视图采用OLAP方法(这会增加一层全新的复杂性……而且这些视图目前是可更新的,这会带来反向同步问题)。。。因此,我试图弄清楚如何平衡查询性能和插入/更新性能。

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

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

谢谢。

在这种情况下,请使用单列else筛选的索引,避免使用包含两列以上的复合索引。

最新更新