针对不同查询在单个表上添加多个索引

时间:2013-03-05 15:09:05

标签: sql query-optimization

我有一个表,它将针对它运行3个不同的查询。

  • 第一个查询有一个where子句,它使用两列
  • 第三列
  • 第三列

如果我通过Estimated Execution Plan运行每个查询,并且SQL Server Management Studio建议为每个查询添加新的不同索引。

我很高兴添加三种不同的索引以获得最佳性能。该表永远不会更新,很少插入。

但是,为了容纳不同的查询,最好将多个索引添加到同一个表中。

1 个答案:

答案 0 :(得分:1)

如果您已充分了解查询,请添加索引。

索引主要在修改数据时添加开销(插入/更新/删除)。它们通过占用页面缓存中的内存也会产生一些额外的开销。这削减了两种方式。有时索引本身可以完全取代表。有时两者都需要,具体取决于查询和索引。

如果数据没有变化,并且有很多潜在的好处,那么几乎没有什么缺点。因为SQL Server正在推荐索引,所以您可以非常确信它们会被使用并且应该提高查询的性能。