我们正在将我们的一个SQL Server实例从2000升级到2005.我安装了性能仪表板(http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en)以访问某些高级报告。其中一个报告显示缺少(推荐)索引。我认为它基于查询优化器维护的一些系统视图。
我的问题是确定何时接受索引建议的最佳方法是什么。我知道应用所有优化器的建议是没有意义的。我看到很多建议基本上都是为了尝试索引并在性能提高时保留它并在性能下降或保持不变的情况下降低它。我想知道是否有更好的方法来做出决定以及在这个问题上存在哪些最佳实践。
答案 0 :(得分:3)
你得到的建议是正确的。一个接一个地尝试所有。
在性能方面没有替代测试。除非你证明,否则你没有做任何事情。
答案 1 :(得分:3)
首先要注意的是:
当你从2000升级到2005年(通过使用分离和附加)时,请确保:
如果你不这样做,你会得到不理想的计划。
如果表格主要是写入,则您希望尽可能少的索引 如果该表用于大量读取查询,则必须确保索引覆盖WHERE子句。
答案 2 :(得分:0)
您最好研究数据库中最常见的查询类型,并根据该研究创建索引。
例如,如果有一个存储网站点击的表格,这些表格经常被写入,但几乎没有读取。然后不要将表索引。
如果你有一个比写入更频繁访问的用户列表,那么我首先要在最容易访问的列上创建一个聚簇索引,通常是主键。然后我会在常用搜索列上创建一个索引,然后按子句的顺序创建索引。