SELECT object_name(dt.object_id) 表名,si.name
索引名称 ,dt.avg_fragmentation_in_percent AS
外部碎片,dt.avg_page_space_used_in_percent AS
内部碎片
FROM
(
SELECT object_id,index_id,avg_fragmentation_in_percent,avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(
db_id('PMDB2021'),null,null,null,'DETAILED'
)
WHERE index_id <> 0
) AS dt
INNER JOIN sys.indexes si ON si.object_id=dt.object_id
AND si.index_id=dt.index_id
where dt.avg_fragmentation_in_percent>10
AND dt.avg_page_space_used_in_percent<75
ORDER BY avg_fragmentation_in_percent DESC
(1)当ExternalFragmentation > 10时说明出现了外部索引碎片。
(2)当InternalFragmentation < 75时说明出现了内部索引碎片。
上面我们分析索引碎片以及判定索引碎片的规则,那么我们又该如何进行磁盘索引碎片整理呢?如下有两种方式,我们接着往下讲。
(1)通过如下代码重组磁盘索引碎片
ALTER INDEX ALL ON TableName REORGANIZE
(2)通过如下代码重

本文介绍了如何分析和处理SQLSERVER的索引碎片问题。当外部碎片超过10%和内部碎片低于75%时,说明存在索引碎片。提供了使用`ALTER INDEX REORGANIZE`和`ALTER INDEX REBUILD`语句进行碎片整理的方法。
最低0.47元/天 解锁文章
6052

被折叠的 条评论
为什么被折叠?



