在一个大型数据库中,数据的更改是非常频繁的。而建立在这些数据上的索引也是需要经常去维护的。否则这这些数据索引就起不到起应起的作用。甚至会成为数据库本身的......
SELECT @command = @command ' PARTITION=' CONVERT (CHAR, @partitionnum);
EXEC (@command); END;
IF @frag >= 30.0 BEGIN; SELECT @command = 'ALTER INDEX [' @indexname '] ON ' @schemaname '.[' @objectname '] REBUILD'; IF @partitioncount > 1 SELECT @command = @command ' PARTITION=' CONVERT (CHAR, @partitionnum);
EXEC (@command); END; PRINT 'Executed ' @command;
FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag; END; -- Close and deallocate the cursor. CLOSE partitions; DEALLOCATE partitions;
-- drop the temporary table IF EXISTS (SELECT name FROM sys.objects WHERE name = 'work_to_do') DROP TABLE work_to_do; GO
这个脚本在运行时 会建立一个表 work_to_do 整理完毕后会自动删除这个表。如果大家不喜欢这样的话也可以用 一个 临时表解决
2/2 首页 上一页 1 2 |