3

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

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

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

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

但是,将多个索引添加到同一个表中以适应不同的查询是否是个好主意。

4

1 回答 1

2

如果您对查询足够了解,请添加索引。

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

如果数据没有变化,则几乎没有负面影响,并且有很大的潜在上行空间。因为 SQL Server 推荐使用索引,所以您可以确信它们会被使用并且应该会提高查询的性能。

于 2013-03-05T15:15:26.470 回答