zoukankan      html  css  js  c++  java
  • Sql Server索引重建

    公司线上数据有几千万数据,有时候索引碎片会导致索引达不到我们的预期查询效率,这个时候将索引重建将会提升一定效率,不过重建的时候一定得晚上用户少的时候,索引重建需要一定时间。

    直接贴自动重建索引脚本吧

     1 DECLARE @Database VARCHAR(255);  
     2 DECLARE @Table VARCHAR(255);  
     3 DECLARE @cmd NVARCHAR(500);  
     4 DECLARE @fillfactor INT;
     5 SET @fillfactor = 90;
     6 DECLARE DatabaseCursor CURSOR
     7 FOR
     8     SELECT  name
     9     FROM    master.dbo.sysdatabases
    10     WHERE   name IN ( 'ChemicalInfo_ALLFULL_New' )
    11     ORDER BY 1;  
    12 OPEN DatabaseCursor;  
    13 FETCH NEXT FROM DatabaseCursor INTO @Database;  
    14 WHILE @@FETCH_STATUS = 0
    15     BEGIN  
    16         SET @cmd = 'DECLARE TableCursor CURSOR FOR SELECT ''['' + table_catalog + ''].['' + table_schema + ''].['' +
    17   table_name + '']'' as tableName FROM [' + @Database
    18             + '].INFORMATION_SCHEMA.TABLES
    19   WHERE table_type = ''BASE TABLE''';  
    20    -- create table cursor  
    21         EXEC (@cmd);  
    22         OPEN TableCursor;  
    23         FETCH NEXT FROM TableCursor INTO @Table;  
    24         WHILE @@FETCH_STATUS = 0
    25             BEGIN  
    26                 IF ( @@MICROSOFTVERSION / POWER(2, 24) >= 9 )
    27                     BEGIN
    28            -- SQL 2005 or higher command
    29                         SET @cmd = 'ALTER INDEX ALL ON ' + @Table
    30                             + ' REBUILD WITH (FILLFACTOR = '
    31                             + CONVERT(VARCHAR(3), @fillfactor) + ')';
    32                         EXEC (@cmd);
    33                     END;
    34                 ELSE
    35                     BEGIN
    36           -- SQL 2000 command
    37                         DBCC DBREINDEX(@Table,' ',@fillfactor);  
    38                     END;
    39                 FETCH NEXT FROM TableCursor INTO @Table;  
    40             END;  
    41         CLOSE TableCursor;  
    42         DEALLOCATE TableCursor;  
    43         FETCH NEXT FROM DatabaseCursor INTO @Database;  
    44     END;  
    45 CLOSE DatabaseCursor;  
    46 DEALLOCATE DatabaseCursor; 
  • 相关阅读:
    交换机/路由器上的 S口 F口 E口
    对称加密&非对称加密
    字节流和字符流 in Java
    Python中使用MySQL
    完全二叉树、理想二叉树满二叉树
    优化MySchool数据库设计
    关于SQL储存过程中输出多行数据
    关于本月第一天,本月最后一天的SQL代码
    SQL常见的系统存储过程
    相关子查询【SQL Server】
  • 原文地址:https://www.cnblogs.com/albertay/p/6737720.html
Copyright © 2011-2022 走看看