優化數據庫之重建整理索引
来源:互联网 发布:淘宝销售额2017 编辑:程序博客网 时间:2024/05/06 06:22
--運行環境
/*
Microsoft SQL Server 2005 - 9.00.4035.00(Intel X86) Nov 24 2008 13:01:59
Copyright (c) 1988-2005 MicrosoftCorporation Developer Edition on WindowsNT 5.2 (Build 3790: Service Pack 1)
*/
USE master
go
IF OBJECT_ID('SP_RefreshIndex','P') IS NOT NULL
DROP PROCEDURESP_RefreshIndex
go
CREATE PROCEDURE SP_RefreshIndex
AS
IF db_id()<5
RETURN
PRINT N'優化DB:'+DB_Name()
SET NOCOUNT ON;
DECLARE @command varchar(8000);
DECLARE partitions CURSOR FOR
SELECT
CASE WHEN a.avg_fragmentation_in_percent<30.0THEN 'ALTER INDEX ' + d.Name + ' ON ' + c.NAME + '.' + b.NAME + ' REORGANIZE '
ELSE 'ALTER INDEX [' + d.Name +'] ON [' + c.NAME + '].[' + b.NAME + '] REBUILD' END+
CASE WHENpartitioncount>1 THEN' PARTITION=' + rtrim(a.partition_number)+';' ELSE ';' END
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') AS a
INNER JOIN sys.objects AS b ON a.object_id=b.object_id
INNER JOIN sys.schemas AS c ON c.schema_id=b.schema_id
INNER JOIN sys.indexes AS d ON d.object_id=a.object_id AND d.index_id=a.index_id
INNER JOIN (SELECT object_id,index_id,partitioncount=COUNT(*) FROM sys.partitions GROUP BY object_id,index_id) AS e ON e.object_id=a.object_id AND e.index_id=a.index_id
WHERE a.avg_fragmentation_in_percent> 10.0 AND a.index_id > 0 AND d.Name IS NOT NULL
OPEN partitions;
FETCH NEXT FROMpartitions INTO @command;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (@command);
FETCH NEXT FROM partitions INTO@command;
END
CLOSE partitions;
DEALLOCATE partitions;
GO
exec sp_ms_marksystemobject 'SP_RefreshIndex'--標記為系統存儲過程
go
EXEC sp_msforeachdb 'use [?] exec SP_RefreshIndex'--優化整個實例所有庫
- 優化數據庫之重建整理索引
- 索引碎片整理--重建索引、合并索引、shrink索引
- SQLServer批量重建索引(整理)
- Oracle之函数索引修改,重建索引
- Elasticsearch 之 不停服务重建索引
- Solr之定时重建索引-yellowcong
- 重建索引
- 索引重建
- 重建索引
- 索引重建
- 重建索引
- 重建索引
- 重建索引
- 重建索引
- 索引重建
- 重建索引
- 重建索引
- SQLSERVER聚集索引的整理(重建)的必要性测试
- 跪求建议!
- 如何远程修改Windows2003服务器管理员密码的方法
- Oracle数据库备份与恢复的三种方法
- Apache转发配置
- QTP使用插件activeX插件启动以后,ie无法启动
- 優化數據庫之重建整理索引
- VS2005+WM6开发时遇到关于“PlatformVerificationTask”的问题
- 浮点数的比较
- C#委托之协变与逆变
- 两个与Android IPC有关的问题
- java中的多态性 是怎么体现的呢?
- 在ASP.NET中动态加载内容 用户控件和模板(转http://www.da8848.cn/article/jiaocheng/NET/3838.html)
- 收藏优质文章比较多的博客
- 产品经理就是帅