微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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个索引来说可能相当低.

原文地址:https://www.jb51.cc/mssql/74911.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐