重建当前数据库中的所有索引
程序员文章站
2022-04-27 23:53:07
...
重建当前数据库中的所有索引 无 DECLARE @sql nvarchar(500) DECLARE RebuildAllTableIndexes CURSORREAD_ONLYFOR SELECT QUOTENAME(SCHEMA_NAME(tbl.schema_id)) + '.' + QUOTENAME(tbl.NAME) tb_name,QUOTENAME(i.NAME) idx_nameFROM sys.tables AS tblINNE
重建当前数据库中的所有索引DECLARE @sql nvarchar(500) DECLARE RebuildAllTableIndexes CURSOR READ_ONLY FOR SELECT QUOTENAME(SCHEMA_NAME(tbl.schema_id)) + '.' + QUOTENAME(tbl.NAME) tb_name, QUOTENAME(i.NAME) idx_name FROM sys.tables AS tbl INNER JOIN sys.indexes AS i ON ( i.index_id > 0 AND i.is_hypothetical = 0 ) AND (i.object_id = tbl.object_id) DECLARE @tb_name nvarchar(255), @idx_name nvarchar(255) OPEN RebuildAllTableIndexes FETCH NEXT FROM RebuildAllTableIndexes INTO @tb_name, @idx_name WHILE (@@fetch_status -1) BEGIN IF (@@fetch_status -2) BEGIN SET @sql = N'ALTER INDEX ' + @idx_name + N' ON ' + @tb_name + N' REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90)' EXEC sp_executesql @sql END FETCH NEXT FROM RebuildAllTableIndexes INTO @tb_name, @idx_name END CLOSE RebuildAllTableIndexes DEALLOCATE RebuildAllTableIndexes GO
推荐阅读
-
Winform中设置ZedGraph当前所有曲线的颜色
-
BootStrap 获得轮播中的索引和当前活动的焦点对象
-
通过系统数据库获取用户所有数据库中的视图、表、存储过程
-
SQL SEVER数据库重建索引的方法
-
面试|简单描述MySQL中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响(从读写两方面)
-
企业案例:查找当前目录下所有文件,并把文件中的https://www.cnblogs.com/zhaokang2019/字符串替换成https://www.cnblogs.com/guobaoyan2019/
-
更改SQL Server更改当前数据库的所有者:sp_changedbowner
-
【转载】C#中List集合使用GetRange方法获取指定索引范围内的所有值
-
查找 oracle 数据库中包含某一字段的所有表的表名
-
数据库SQL实战:获取所有部门中当前员工薪水最高的相关信息(教程)