我熟悉索引碎片的概念,以及如何修复它,但我不太确定一个特定的项目。
当您查看索引碎片时,它总是按百分比来报告。
发布于 2013-12-09 18:29:25
这将是索引的逻辑碎片,堆的范围碎片。sys.dm_db_index_physical_stats上的BOL引用实际上提供了关于这个主题的相当好的信息:
逻辑碎片--这是索引的叶页中无序页的百分比。无序页是指分配给索引的下一个物理页不是当前叶页中下一页指针所指向的页的页。区段分段--这是堆的叶页中无序区段的百分比。无序范围是指在包含上一页的范围之后,包含堆的当前页的范围实际上不是下一个区段的范围。为了最大限度地提高性能,avg_fragmentation_in_percent的值应该尽可能接近于零。但是,从0%到10 %的值是可以接受的。所有减少碎片的方法,例如重建、重组或重新创建,都可以用来减少这些值。有关如何分析索引中的碎片程度的详细信息,请参阅重新组织和重建索引。
想一想一个索引,正如上面所强调的,它是“页页中无序页面的百分比”。索引页将是一个双链接列表。换句话说,每个页面都指向其各自索引级别中的下一页和前一页。下面是一张关于双链接列表的图片(用于说明性目的):

注意:上面的图片是从互联网上随机抽取出来的,这是一个简单的表示。但它确实缺少了A__'s下一个指针,以及F_‘S以前的指针。我不想混淆Server索引中的叶页到底是什么样子。
这个结构将表示数据的逻辑流。换句话说,不管物理现实是什么,接下来会出现什么页面。当实际的物理下一页不是当前叶页所指向的下一页时,这种逻辑分割就会起作用。
根据上面的定义,假设您有四个索引页。在这些索引页中,有1/4的下一页指针不是它旁边的物理页,但其他3页确实具有这种物理性质。在这种情况下,您的分割率将为25%。当然,这是一个简单的例子,在现实中,您不会关心少于数千页的索引。但希望这能让这个数字的含义更加清晰。
发布于 2013-12-09 18:26:50
我在互联网上找到了答案,这是格兰特·弗里奇( Grant Fritchey )提供的。
“当您查看碎片百分比时,您看到的是外部碎片。它指的是显示固有存储机制的不正常页面的百分比。”
http://ask.sqlservercentral.com/questions/6505/what-is-index-fragmentation-actually.html
所以,有多少页不完整是不正常的。
https://dba.stackexchange.com/questions/54731
复制相似问题