加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver重建所有索引的存储过程

发布时间:2020-12-12 13:18:29 所属栏目:MsSql教程 来源:网络整理
导读:CREATE?proc?[dbo].[reBuildIndex] as declare?@statement?NVARCHAR(1000) declare?mycursor?cursor?for SELECT?'ALTER?INDEX?['?+?ix.name?+?']?ON?['?+?s.name?+?'].['?+?t.name?+?']?REBUILD?WITH?(?PAD_INDEX??=?OFF,?STATISTICS_NORECOMPUTE??=?OFF,?AL

CREATE?proc?[dbo].[reBuildIndex]
as
declare?@statement?NVARCHAR(1000)
declare?mycursor?cursor?for
SELECT?'ALTER?INDEX?['?+?ix.name?+?']?ON?['?+?s.name?+?'].['?+?t.name?+?']?REBUILD?WITH?(?PAD_INDEX??=?OFF,?STATISTICS_NORECOMPUTE??=?OFF,?ALLOW_ROW_LOCKS??=?ON,?ALLOW_PAGE_LOCKS??=?ON,?SORT_IN_TEMPDB?=?OFF,?ONLINE?=?OFF?)'?
??????as?sqlStr
FROM???sys.indexes?AS?ix
???????INNER?JOIN?sys.tables?t
???????ON?????t.object_id?=?ix.object_id
???????INNER?JOIN?sys.schemas?s
???????ON?????t.schema_id?=?s.schema_id
???????INNER?JOIN
??????????????(SELECT?object_id???????????????????,
??????????????????????index_id????????????????????,
??????????????????????avg_fragmentation_in_percent,
??????????????????????partition_number
??????????????FROM????sys.dm_db_index_physical_stats?(DB_ID(),?NULL,?NULL)
??????????????)?ps
???????ON?????t.object_id?=?ps.object_id
??????????AND?ix.index_id?=?ps.index_id
???????INNER?JOIN
??????????????(SELECT??object_id,
???????????????????????index_id?,
???????????????????????COUNT(DISTINCT?partition_number)?AS?partition_count
??????????????FROM?????sys.partitions
??????????????GROUP?BY?object_id,
???????????????????????index_id
??????????????)?pc
???????ON?????t.object_id??????????????=?pc.object_id
??????????AND?ix.index_id??????????????=?pc.index_id
WHERE??ps.avg_fragmentation_in_percent?>?0
???AND?ix.name?IS?NOT?NULL
open?mycursor

fetch?next?from?mycursor??into?@statement while(@@fetch_status=0)?????--如果数据集里一直有数据 begin EXEC?sp_executesql??@statement --select?@statement fetch?next?from?mycursor??into?@statement end close?mycursor??????? deallocate?mycursor ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读