2017-08-13 13 views
0

为什么我必须重建索引,该索引的平均值小于平均值。碎片小于1%以获得性能?为什么我必须重建索引,该索引的平均值小于平均值。碎片小于1%以获得性能?

我有一个表,它经常更新,但是当我深入查看并检查平均值时。碎片,甚至用于少于1%。当我重建该索引时,自动性能得到了改善。

我在单个查询中加入了超过2个表格的表格。

我想知道按照MSDN我们不应该做任何含表小于1点%的索引,但不重建我的查询,没有给我造成更快。我也设置FillFactor = 75.

回答

1

碎片很少影响性能。重建索引更新与索引关联的统计信息并使与该对象关联的缓存计划无效。

+0

我部分同意你的观点,但也有可能碎裂成是我的理解,通过阅读[MSDN博客](https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize被影响-and-重建的索引)。如果您的反馈对性能有影响,为什么在重建我的表的聚簇索引后,查询变得更快! – Dhruv

+0

“重建聚簇索引后我的查询变得更快”更新的统计信息是最可能的原因,但更新后的查询计划也可以这样做。 –

+0

感谢大卫视图这给了我一种方式来思考另一个方面/方式,按您的意见,我已经重新分析整个查询和执行计划,我想我应该补充上表中缺少非聚集索引,最后我发现与之前的执行相比,我的查询运行速度更快。我知道,对于执行速度慢的所有查询添加非聚集索引是不好的习惯。 – Dhruv