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

    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

    希望对大家有帮助!

     
     
     
    标签: MSSQL
  • 相关阅读:
    MySQL 允许远程连接
    EeePad刷机
    Ubuntu安装Oracle JDK
    Windows Azure Tips
    查看MySQL数据库大小
    Tomcat 7 DBCP 配置(MySQL)
    几个国内的OpenSource镜像站
    好吧,这是我的第一篇文章。
    安卓软件推荐56冰箱IceBox
    ArrayList 冷门方法
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3214274.html
Copyright © 2011-2022 走看看