如何知道要实现哪些SQL Server 2005索引建议(如果有的话)?

Translate

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

我的问题是确定何时采用索引推荐的最佳方法是什么。我知道应用所有优化程序的建议没有任何意义。我看到很多建议,基本上都是说要尝试索引并在性能提高时将其保留,而在性能降低或保持不变时将其删除。我想知道是否有更好的方法来做出决定,以及在此主题上存在哪些最佳实践。

This question and all comments follow the "Attribution Required."

所有的回答

Translate

首先要注意的是:

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

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

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

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

来源
Stu
Translate

您得到的建议是正确的。一一尝试。

在性能方面,没有替代测试的方法。除非您证明,否则您什么也不会做。

来源
Translate

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

例如,如果有一个表存储了网站的点击量,那么该表会被非常频繁地写入,甚至很难被读取。然后不要索引该表。

如果您拥有的访问者列表比被写入的访问者更多,那么我将首先在访问量最大的列(通常是主键)上创建聚簇索引。然后,我将在常用搜索列以及在order by子句中使用的列上创建索引。

来源