我如何知道要实施哪些SQL Server 2005索引建议?

时间:2020-03-05 18:38:08  来源:igfitidea点击:

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

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

解决方案

回答

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

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

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

回答

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

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

回答

首先要注意的是:

从2000升级到2005(通过使用分离和添加)时,请确保我们:

  • 将兼容性设置为90
  • 重建索引
  • 使用全面扫描运行更新统计信息

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

如果表主要是写的,则我们希望索引越少越好
如果该表用于许多读取查询,则必须确保WHERE子句被索引覆盖。