9

我们正在将我们的一个 SQL Server 实例从 2000 年升级到 2005 年。我安装了性能仪表板 ( http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204 -e419218c1efc&displaylang=en ) 用于访问一些高级报告。其中一份报告显示缺少(推荐的)索引。我认为它基于查询优化器维护的一些系统视图。

我的问题是确定何时接受指数推荐的最佳方法是什么。我知道应用所有优化器的建议是没有意义的。我看到很多建议基本上都说尝试索引并在性能提高时保留它,如果性能下降或保持不变则放弃它。我想知道是否有更好的方法来做出决定,以及在这个主题上有哪些最佳实践。

4

3 回答 3

4

首先要注意:

当您从 2000 升级到 2005(通过使用分离和附加)时,请确保您:

  1. 将兼容性设置为 90
  2. 重建索引
  3. 使用完整扫描运行更新统计信息

如果您不这样做,您将获得次优计划。

如果该表主要是写入,则您希望尽可能少的索引如果该表用于大量读取查询,则您必须确保 WHERE 子句被索引覆盖。

于 2008-08-08T13:32:30.550 回答
3

你得到的建议是正确的。一个一个地尝试它们。

在性能方面,没有什么可以替代测试。除非你证明它,否则你什么都没做。

于 2008-08-06T21:11:53.987 回答
0

您最好研究数据库上发生的最常见查询类型并根据该研究创建索引。

例如,如果有一个存储网站点击量的表,该表经常被写入,但几乎没有读取。然后不要索引表。

如果您有一个访问频率高于写入频率的用户列表,那么我将首先在访问最多的列上创建一个聚集索引,通常是主键。然后,我将在常用搜索列以及按子句顺序使用的列上创建索引。

于 2008-08-06T21:03:51.913 回答