在SQL中重建索引时解释“Total Fragmentation”列
问题描述:
我现在找不到它,但是在堆栈溢出的帖子的评论中有人说当检查您看到的Total Fragmentation列时,.85是85%右键单击SSMS中的索引并点击重建。但我找不到任何其他的说法。在SQL中重建索引时解释“Total Fragmentation”列
所以我想知道,是.85 == 85%和1.25 == 125%碎片?
或者.85 == 0.85%和1.25 == 1.25%碎片?
我敢肯定,这是一个愚蠢的问题,因为大多数其他所有事情都以隐含的方式陈述后者,但我只是想仔细检查。
答
不知道为什么人们避免直接回答问题,而是你的答案是,0.85 EM就像它说,0.85%
答
我使用以下方法来检查碎片 - 它应该很容易使用它通过用户界面来验证结果:
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
这工作对当前数据库。
接着说:SQL-server'标签因“SSMS”在提问题 – 2014-09-02 14:38:36
如果你在SSMS中使用gui来重建索引,你需要阅读这篇文章。 https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html – 2014-09-02 14:52:55