ChinaHost

 找回密码
 用户.注册
查看: 2152|回复: 1

[服务器经验交流] 解决SQL Server 表或索引的碎片问题

[复制链接]
发表于 2014-4-11 11:12:48 | 显示全部楼层 |阅读模式
对表进行长期的修改或删除会产生大量的碎片,影响数据库性能。解决办法就是把表或索引重建,消除碎片,达到优化的目的。
  直接上代码:
  /*查询碎片,avg_fragmentation_in_percent就是索引占的百分比,大于30都是不正常的,需要重建*/
  DECLARE @db_id int;
  DECLARE @object_id int;
  SET @db_id = DB_ID(N'AdventureWorks2008R2');
  SET @object_id = OBJECT_ID(N'AdventureWorks2008R2.Person.Address');
  IF @db_id IS NULL
  BEGIN;
  PRINT N'Invalid database';
  END;
  ELSE IF @object_id IS NULL
  BEGIN;
  PRINT N'Invalid object';
  END;
  ELSE
  BEGIN;
  SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);
  END;
  GO
  /*重建表*/
  alter table <表名> rebuild
  /*重建索引*/
  alter index <索引名> ON <表名>   rebuild
发表于 2014-4-14 11:15:16 | 显示全部楼层
感谢楼主的分享,解决了我的问题。。
您需要登录后才可以回帖 登录 | 用户.注册

本版积分规则

手机版|小黑屋|

Processed in 0.141953 second(s), 21 queries , Gzip On.

Powered by Comsenz Discuz! platform.

© 2012-2016 中国主机联盟 专业IDC交流平台,提供服务器、VPS云主机、虚拟主机、域名技术交流及优惠信息

快速回复 返回顶部 返回列表