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

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

有帮助吗?

解决方案

首先要注意的是:

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

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

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

如果表格的编写大部分,则需要尽可能少的索引,如果该表用于大量读取查询,则必须确保索引涵盖的位置。

其他提示

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

就性能而言,测试是无可替代的。除非你证明这一点,否则你什么也没做。

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

例如,如果有一个存储网站点击量的表,该表的写入非常频繁,但几乎很少读取。然后不要对表进行索引。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top