我有一个 +/- 8000 万行(分区)的表。
插入速度有点慢(大约 1-3 秒)。查询计划说 68% 的插入是clustered index insert
,但对于每个插入/更新和删除,表上也有一些触发器。所以很难说是什么真正造成了时间。
无论如何,我们在该表上有一些索引,其中一些有 3-5 列。
我想知道的是什么更好,性能更好:有一些包含多列的索引,还是有更多更小的索引和更少的列?
欢迎所有提示和建议。
我有一个 +/- 8000 万行(分区)的表。
插入速度有点慢(大约 1-3 秒)。查询计划说 68% 的插入是clustered index insert
,但对于每个插入/更新和删除,表上也有一些触发器。所以很难说是什么真正造成了时间。
无论如何,我们在该表上有一些索引,其中一些有 3-5 列。
我想知道的是什么更好,性能更好:有一些包含多列的索引,还是有更多更小的索引和更少的列?
欢迎所有提示和建议。
查询计划说 68% 的插入是聚集索引插入,但对于每次插入/更新和删除,表上也有一些触发器。所以很难说是什么真正造成了时间。
我认为很明显是您的触发器导致了问题。在没有触发器的情况下,在如此小的表上插入一行需要 3 秒是极不可能的。您可以尝试删除它们,看看您的插入是否仍然很慢。
有一些包含多列的索引,或者有更多更小的索引和更少的列?
您应该查看您的查询并查看它们正在使用哪些索引。为了优化读取性能,如果慢速查询可能受益,您应该添加索引 - 这可以是单列索引或多列索引,具体取决于特定查询。要优化写入性能,您应该删除所有未使用的索引。