日期:2014-05-17  浏览次数:20663 次

求达人解惑
现有一台服务器,win2003企业版+mssql2000企业版,给数据库中的某个表加了1个聚集索引,5个非聚集索引.并通过作业定时来对该表执行DBCC DBRINDEX索引重建工作。可几个工作日后,发现索引重组后的一个小时内,五个非聚集索引中的三个的逻辑扫描碎片百分比就达到99%,在这一个小时内数据表没有任何数据插入。
数据库

------解决方案--------------------
从描述看,只能说明逻辑扫描碎片的方法有问题

实际上碎片对你的性能影响到底多大,没多大影响的话少点折腾数据库,折腾有成本的,也可能折腾出问题来
------解决方案--------------------
引用:
从描述看,只能说明逻辑扫描碎片的方法有问题

实际上碎片对你的性能影响到底多大,没多大影响的话少点折腾数据库,折腾有成本的,也可能折腾出问题来



同意楼上说法。 到一定指标了再进行处理。 

参考
DECLARE     @页满度        TINYINT = 80   --可修改  
DECLARE     @索引页总数  TINYINT = 80   --可修改  
  
SELECT  'alter index ' + i.name + ' on ' + OBJECT_NAME(i.id) + ' rebuild'  
FROM    Manufacture.sys.sysindexes i ,  
        Manufacture.sys.dm_db_index_physical_stats(DB_ID('希望查找的数据库名称'), NULL,  
                                                   NULL, NULL, 'SAMPLED') o  
WHERE   i.id = o.object_id  
        AND i.indid = o.index_id  
        AND o.page_count > @索引页总数  
        AND avg_page_space_used_in_percent < @页满度  
        AND i.name NOT LIKE '_WA%'
 
------解决方案--------------------
不明白是什么原因?

按道理来讲,重建聚集索引时不会影响到非聚集索引的逻辑碎片百分比的(avg_fragmentation_in_percent)

重建非聚集索引也不会影响到聚集索引的逻辑碎片百分比

楼主所说的情况下又没有插入数据,“三个的逻辑扫描碎片百分比就达到99%”

不知道是不是楼主你看错了啊?
------解决方案--------------------
索引碎片增长飞快的话,很大一个原因是你的填充因子过大,可以调低一点