sql-server – 重建索引不会更改非聚簇索引的碎片%

前端之家收集整理的这篇文章主要介绍了sql-server – 重建索引不会更改非聚簇索引的碎片%前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,我不是DBA,我正在努力重建索引.

我利用来自msdn的惊人Tsql脚本根据dm_db_index_physical_stats返回的fragmente百分比更改索引,如果片段百分比超过30,则执行REBUILD或重新进行重组.

我发现,在第一次迭代中,有87条记录需要碎片整理.我运行了脚本,所有87个索引(聚簇和非聚簇)都被重建或重新编制索引.当我从dm_db_index_physical_stats获得统计数据时,仍有27条记录需要碎片整理,所有这些记录都是非聚集索引.所有Clustered索引都是固定的.

无论我运行多少次脚本来对这些记录进行碎片整理,我仍然可以使用相同的索引进行defraged,并且大多数都具有相同的碎片%.在此之后似乎没有任何改变.

注意:在这些迭代期间,我没有对表执行任何插入/更新/删除操作.仍然重建/重组没有导致任何变化.

更多信息:使用sql 2008
脚本在msdn http://msdn.microsoft.com/en-us/library/ms188917.aspx中可用

您能否解释一下为什么这27个非聚簇索引的记录没有被更改/修改

任何有关这方面的帮助将受到高度赞赏.

点头

解决方法

sql Server不会重建不够大的索引.看一下fragment_count(这是sys.dm_db_index_physical_stats视图中的一个字段),对于那27个索引来说可能相当低.

猜你在找的MsSQL相关文章