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
  • 相关阅读:
    NOI2007项链工厂——sbTreap代码
    终于还是卡着进队了
    SCOI RP+=INF
    每日算法——新型在线LCA
    每日算法——并查集的应用
    每日算法--矩阵乘法优化递推
    神一般的数据结构--可持久化treap
    算法竞赛中的数论经典定理
    Baby Step Gaint Step
    素数分组 哥德巴赫猜想
  • 原文地址:https://www.cnblogs.com/lionetchen/p/9783515.html
Copyright © 2011-2022 走看看