日常性能维护--Sql作业定时重建索引

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

日常性能维护--Sql作业定时重建索引

应用场景:星空私有云如果使用时间长了,容易出现系统慢,就算常去点管理中心的数据库优化,还有有些索引难以重建,所以使用Sql作业定时重建索引

索引重建分两步:

一:重建并创建压缩索引

二:日常重建索引


针对以上两个现状,建立两个SQL作业

一:执行一次的SQL作业


--1、执行一次 表压缩

declare @SqlStrTabel nvarchar(max)

set @SqlStrTabel=''

select @SqlStrTabel= @SqlStrTabel + +'alter index all on '+name+' rebuild;' from sysobjects where xtype='U' and (name like 'T_%') and (name not like 'TMP%')

exec (@SqlStrTabel)

--2、执行一次 索引压缩

declare @sqlIndex varchar(max)

set @sqlIndex=''

select @sqlIndex=@sqlIndex+'ALTER INDEX ['+u.name+'] ON ['+v.name +' ]REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = ROW);'+char(13)+char (10)

from sys. indexes u join sys.tables v on u.object_id=v.object_id 

where index_id>1 

exec(@sqlIndex)

--3、每天执行 索引重建、压缩, 并更新统计信息

declare @sql varchar(max) 

set @sql=''

select @sql=@sql+'dbcc dbreindex(['+name+']);'+char(13)+char(10) from sys. tables where name NOT LIKE 'TMP%' AND NAME NOT LIKE 'Z[_]%' 

exec (@sql)


二:再建立一个每天晚上执行的索(使用dbcc dbreindex()的好处:1、执行索引且更新了统计信息。2、对隐藏索引也重建

--每天执行 索引重建、压缩, 并更新统计信息

declare @sql varchar(max) 

set @sql=''

select @sql=@sql+'dbcc dbreindex(['+name+']);'+char(13)+char(10) from sys. tables where name NOT LIKE 'TMP%' AND NAME NOT LIKE 'Z[_]%' 

exec (@sql)


三:作业的创建大家可直接百度

日常性能维护--Sql作业定时重建索引

应用场景:星空私有云如果使用时间长了,容易出现系统慢,就算常去点管理中心的数据库优化,还有有些索引难以重建,所以使用Sql作业定时重...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息