2012-05-04 54 views
0

我有一个表格,有+/- 8000万行(分区)。大型表上的SQL索引:一些大型索引或更小的索引?

插件变得有点慢(约1-3秒)。 查询计划显示插入的68%是clustered index insert,但表中还有一些触发器用于每个插入/更新和删除操作。所以它很难说真正导致时间的是什么。

无论如何,我们在该表上有一些索引,其中有3-5列。

我想知道什么是更好的,性能明智的: 要使其中有多个列的索引或使用较少列的更小的索引?

欢迎提供所有提示和建议。

回答

4

查询计划表示,68%的插入是聚簇索引插入,但表中还有一些触发器用于每个插入/更新和删除操作。所以它很难说真正导致时间的是什么。

我认为这是相当明显的,它是你的触发器导致的问题。在没有触发器的小型表上插入单行很不可能需要3秒。你可以尝试删除它们,看看你的插入是否仍然很慢。

要使其中有多个列的索引或使用更少列的更小索引?

你应该看看你的查询,看看他们正在使用哪些索引。要优化读取性能,您应该添加索引,如果慢速查询可能会受益 - 这可能是单列索引或多列索引,具体取决于具体查询。要优化写入性能,您应该删除所有未使用的索引。