zoukankan      html  css  js  c++  java
  • SQL SERVER 查询与整理索引碎片

    重建索引

     1 use DATABASE_NAME;
     2 
     3 DECLARE @TableName VARCHAR(255)
     4 DECLARE @sql NVARCHAR(500)
     5 DECLARE @fillfactor INT
     6 SET @fillfactor = 80
     7 DECLARE TableCursor CURSOR FOR
     8 SELECT OBJECT_SCHEMA_NAME([object_id])+'.['+name+']' AS TableName
     9 FROM sys.tables w
    10 OPEN TableCursor
    11 FETCH NEXT FROM TableCursor INTO @TableName
    12 WHILE @@FETCH_STATUS = 0
    13 BEGIN
    14 SET @sql = 'ALTER INDEX ALL ON ' + @TableName + ' REBUILD WITH (ONLINE=off,FILLFACTOR=80);' --' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR(3),@fillfactor) + ')'
    15 exec (@sql)
    16 FETCH NEXT FROM TableCursor INTO @TableName
    17 END
    18 CLOSE TableCursor
    19 DEALLOCATE TableCursor
    20 GO

     查询索引碎片

    use DATABASE_NAME;
    SELECT dbschemas.[name] as 'Schema', 
    dbtables.[name] as 'Table', 
    dbindexes.[name] as 'Index',
    indexstats.alloc_unit_type_desc,
    indexstats.avg_fragmentation_in_percent,
    indexstats.page_count
    FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
    INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
    INNER JOIN sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id]
    INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
    AND indexstats.index_id = dbindexes.index_id
    WHERE indexstats.database_id = DB_ID() and dbindexes.[name] not like 'pk_%'
    ORDER BY indexstats.avg_fragmentation_in_percent * page_count desc
  • 相关阅读:
    php入门变量
    php入门引言
    帝国cms7.0修改默认搜索模版中的分页[!--show.page--]
    帝国cms 列表页分页样式修改美化【2】
    划词翻译
    MySQL几种常见的排序方式
    你的眼界决定了你的格局
    Easy Window Switcher支持Windows 10虚拟桌面
    鬼谷子的人生智慧
    接口设计的八大黄金规则
  • 原文地址:https://www.cnblogs.com/lionetchen/p/9783515.html
Copyright © 2011-2022 走看看