zoukankan      html  css  js  c++  java
  • MSSQL Rebuild(重建)索引

    前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql:

    DECLARE @tablename VARCHAR(50)
    DECLARE @indexname VARCHAR(50)
    DECLARE @cmdsql NVARCHAR(MAX)
    DECLARE index_cursor CURSOR
    FOR
    SELECT  OBJECT_NAME(object_id) AS Table_Name ,
            name
    FROM    sys.indexes
    WHERE   name IS NOT NULL
            AND OBJECT_NAME(object_id) IN ( SELECT  name
                                            FROM    sys.tables )
              OPEN index_cursor
    FETCH NEXT FROM index_cursor
    INTO @tablename,@indexname

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @cmdsql ='ALTER INDEX ['+@indexname+'] ON [dbo].['+@tablename+'] REBUILD WITH ( PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )'
            EXECUTE sp_executesql @cmdsql
            PRINT @cmdsql
            FETCH NEXT FROM index_cursor
     INTO @tablename,@indexname
        END
    CLOSE index_cursor
    DEALLOCATE index_cursor

    希望对大家有帮助!

  • 相关阅读:
    查询内容在网页里面分页显示+跳页查看
    struts2——通配符
    JavaScript 输出
    oracl函数
    oracle基本用法
    Java之线程处理之二
    java之多线程之一/序列化和反序列化
    错题整理之二
    S2结业考试的第一次测验
    cookie与session的爱恨情仇
  • 原文地址:https://www.cnblogs.com/majiang/p/3214209.html
Copyright © 2011-2022 走看看