DECLARE @SchemeName NVARCHAR(MAX)=N'';
DECLARE @TableName NVARCHAR(MAX)=N'';
DECLARE @IndexName NVARCHAR(MAX)=N'';
DECLARE @avg_fragmentation_in_percent FLOAT=0;
DECLARE @SQL NVARCHAR(MAX)=N''; DECLARE cur_index CURSOR
LOCAL
FORWARD_ONLY
FAST_FORWARD
READ_ONLY
FOR
SELECT
'['+s.name+']' AS SchemeName,
'['+o.name+']' AS TableName,
'['+i.name+']' AS IndexName,
MAX(ps.avg_fragmentation_in_percent) AS avg_fragmentation_in_percent
FROM sys.indexes i
INNER JOIN sys.objects o
ON i.object_id = o.object_id
INNER JOIN sys.schemas s
ON o.schema_id = s.schema_id
INNER JOIN sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, N'DETAILED') AS ps
ON ps.object_id = i.object_id
AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent >= 10
AND i.type IN (1, 2) --1: CLUSTERED, 2: NONCLUSTERED
AND o.type = N'U' --U: USER_TABLE
AND ps.index_level = 0 --Index leaf-level
GROUP BY s.name,
o.name,
i.name
ORDER BY avg_fragmentation_in_percent DESC; OPEN cur_index; FETCH NEXT FROM cur_index
INTO @SchemeName, @TableName, @IndexName, @avg_fragmentation_in_percent; WHILE(@@FETCH_STATUS=0)
BEGIN
IF (@avg_fragmentation_in_percent>60)
BEGIN
SELECT @SQL = N'ALTER INDEX ' + @IndexName + N' ON ' + @SchemeName + N'.' + @TableName
+ N' REBUILD PARTITION=ALL WITH (FILLFACTOR = 95, ONLINE = OFF, DATA_COMPRESSION = PAGE );'
END
ELSE --@avg_fragmentation_in_percent between 40 and 60
BEGIN
SELECT @SQL = N'ALTER INDEX ' + @IndexName + N' ON ' + @SchemeName + N'.' + @TableName
+ N' REORGANIZE PARTITION=ALL;'
END EXEC (@SQL) FETCH NEXT FROM cur_index
INTO @SchemeName, @TableName, @IndexName, @avg_fragmentation_in_percent;
END CLOSE cur_index;
DEALLOCATE cur_index;

最新文章

  1. 使用Ecplise git commit时出现"There are no stages files"
  2. 记录一次centos6.4版本的VSFTP本地用户登陆的配置
  3. 双数组Trie树 (Double-array Trie) 及其应用
  4. 【C语言学习】存储类型
  5. unity3d为什么会有三种脚本语言?
  6. 8.javaweb之session
  7. 使用Django实现分页器功能
  8. scrapy实战之scrapyrt的使用
  9. js 时间类函数
  10. 使用Java解析XML
  11. 将mysql数据库数据以Excel文件的形式导出
  12. Codeforces 803C. Maximal GCD 二分
  13. python---django使用cookie和session
  14. jQuery.cookie应用操作
  15. ASP.NET Forms身份认证详解
  16. 微信小程序-视频教程-百度云-下载
  17. 3D游戏与计算机图形学中的数学方法-点线面
  18. HDU 1402
  19. Django-建立网页
  20. 【BZOJ 4031】 4031: [HEOI2015]小Z的房间 (Matrix-Tree Theorem)

热门文章

  1. html script生成二维码
  2. SHELL输出颜色和闪烁控制
  3. Git配置用户名、邮箱
  4. 请求转发、包含、重定向 getAttribute 和 setAttribute POST和GET编码
  5. LeetCode算法题-Rectangle Overlap(Java实现)
  6. k8s/01开启云原生之门(Mooc)
  7. 关于linux中的目录配置标准以及文件基本信息
  8. 20191127 Spring Boot官方文档学习(4.11)
  9. python下对文件的操作(非目录)
  10. 如何将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中