在SQL中重建索引时解释“Total Fragmentation”列

时间:2014-09-02 14:31:31

标签: sql sql-server indexing fragmentation rebuild

我现在无法找到它,但是在堆栈溢出帖子的评论中的某个地方有人说当检查右边点击SSMS中的索引并点击Rebuild时看到的Total Fragmentation列时,.85是85% 。但我无法找到其他任何说明的内容。

所以我想知道,是.85 == 85%和1.25 == 125%的碎片?

或者.85 == 0.85%和1.25 = 1.25%的碎片?

我确定这是一个愚蠢的问题,因为大多数其他事情都以隐含的方式陈述后者,但我只想仔细检查。

2 个答案:

答案 0 :(得分:3)

不确定为什么人们会避免直接回答问题,但你的回答是,EM中的0.85就像它说的那样,0.85%

答案 1 :(得分:0)

我使用以下内容检查碎片 - 应该很容易使用它来通过用户界面验证您的结果:

SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName, 
ind.name AS IndexName, indexstats.index_type_desc AS IndexType, 
indexstats.avg_fragmentation_in_percent 
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes IND
ON ind.object_id = indexstats.object_id 
AND ind.index_id = indexstats.index_id 
WHERE indexstats.avg_fragmentation_in_percent > 5 
ORDER BY 1,2 DESC

这适用于当前数据库。