求达人解惑
现有一台服务器,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%'