zoukankan      html  css  js  c++  java
  • 優化數據庫之重建整理索引

    -- 運行環境

    /*

    Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)   Nov 24 2008 13:01:59  

    Copyright (c) 1988-2005 Microsoft Corporation  Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

    */

    USE master

    go

    IF OBJECT_ID ( 'SP_RefreshIndex' , 'P' ) IS NOT NULL

        DROP PROCEDURE SP_RefreshIndex

    go

    CREATE PROCEDURE SP_RefreshIndex

    AS

    IF db_id ()< 5

        RETURN

    PRINT N' 優化 DB:' + DB_Name ()

    SET NOCOUNT ON ;

    DECLARE @command varchar ( 8000);

     

    DECLARE partitions CURSOR FOR

    SELECT

        CASE WHEN a. avg_fragmentation_in_percent< 30.0 THEN 'ALTER INDEX ' + d. Name + ' ON ' + c. NAME + '.' + b. NAME + ' REORGANIZE '

              ELSE 'ALTER INDEX [' + d. Name + '] ON [' + c. NAME + '].[' + b. NAME + '] REBUILD' END +

        CASE WHEN partitioncount> 1 THEN ' PARTITION=' + rtrim ( a. partition_number)+ ';' ELSE ';' END

    FROM sys.dm_db_index_physical_stats ( DB_ID (), NULL, NULL , NULL, 'LIMITED' ) AS a

        INNER JOIN sys.objects AS b ON a. object_id = b. object_id

        INNER JOIN sys.schemas AS c ON c. schema_id = b. schema_id

        INNER JOIN sys.indexes AS d ON d. object_id = a. object_id AND d. index_id= a. index_id

        INNER JOIN ( SELECT object_id , index_id, partitioncount= COUNT (*) FROM sys.partitions GROUP BY object_id , index_id) AS e ON e. object_id = a. object_id AND e. index_id= a. index_id

    WHERE a. avg_fragmentation_in_percent > 10.0 AND a. index_id > 0 AND d. Name IS NOT NULL

     

    OPEN partitions;

    FETCH NEXT   FROM partitions INTO @command;

    WHILE @@FETCH_STATUS = 0

    BEGIN

        EXEC ( @command);

        FETCH NEXT FROM partitions INTO @command;

    END

    CLOSE partitions;

    DEALLOCATE partitions;

     

    GO

    exec sp_ms_marksystemobject 'SP_RefreshIndex' -- 標記為系統存儲過程

    go

     

    EXEC sp_msforeachdb 'use [?] exec SP_RefreshIndex' -- 優化整個實例所有庫

     

     

     

  • 相关阅读:
    python 安装预编译库注意事项-pip
    Lucene 入门需要了解的东西
    PHPSTORM 与 Xdebug 配合调试
    Windows 下命令行修改文件夹的控制权限 Cacls
    PHP 解压zip文件的函数封装
    PHP 关于回调的用法
    CentOS7 安装 swoole
    CentOS7 安装 scala 2.11.1
    PHP 代码质量检测工具的安装与使用
    PHP 新建动态类的代码
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463074.html
Copyright © 2011-2022 走看看