小编Mic*_*ael的帖子

SQL Server 堆表碎片监控

作为一名 SQL Server DBA,我有定期重建/重组索引的维护工作。最近,我问自己 SQL Server 中的表碎片问题。然后我阅读了有关堆表及其碎片的文章。我们不断以各种方式检查 SQL 服务器的状态,我想知道添加对表碎片的检查是否有用。

我正在考虑开发类似的东西:“它们是集群索引吗?” 是 -> 什么都不做,不 -> 所以检查:

percentage of fragmentation > x%

numbers of forward pointing > x

numbers of rows > x
Run Code Online (Sandbox Code Playgroud)

如果 x > 某些值,则发出警报。

您如何看待设置这种检查,有用与否?

堆表的碎片整理会减少磁盘上数据库文件的物理大小吗?

编辑 :

我最终使用这段代码来检测需要重建的堆表:

SELECT Database_id, Object_name([object_id]) as TableName, Index_type_desc, 
Avg_fragmentation_in_percent, rowmodctr, forwarded_record_count
From sys.dm_db_index_physical_stats(db_id(),object_id(''),null,null,'detailed') AS SDDIPS
Inner join sys.sysindexes AS SI on SDDIPS.[object_id] = SI.id 
AND SDDIPS.index_id = SI.indid
--Inner join sysobjects AS SO on  SI.id = SO.id
Where index_level = 0 AND …
Run Code Online (Sandbox Code Playgroud)

sql-server clustered-index heap fragmentation

3
推荐指数
1
解决办法
641
查看次数

标签 统计

clustered-index ×1

fragmentation ×1

heap ×1

sql-server ×1