我继承的 SQL Server 2005 数据库中的几个键具有非常高的碎片百分比。使用以下 SQL 时:
select OBJECT_NAME(object_id), avg_fragmentation_in_percent, record_count, *
from sys.dm_db_index_physical_stats (DB_ID(N'FragmentedDB'), NULL, NULL, NULL, 'Detailed') s
我看到几个表的碎片百分比在 50 到 99 之间。这些表都有超过 100,000 行,有些有 2,000,000+。我相信这会导致我们的应用程序出现严重的性能问题,因此我尝试使用以下 sql 重建其中一些索引:
ALTER INDEX ALL ON [dbo].[FragmentedTable]
REBUILD WITH ( FILLFACTOR = 90, ONLINE = ON )
但是,在我重建索引并再次查看碎片百分比后,它们都没有改变。有什么我想念的吗?我已经对这个主题进行了一些搜索,但到目前为止都是空的。
谢谢!