sql 检查数据库中索引的索引碎片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 检查数据库中索引的索引碎片相关的知识,希望对你有一定的参考价值。

SELECT 
  dbschemas.[name] as 'Schema',
  dbtables.[name] as 'Table',
  dbindexes.[name] as 'Index',
  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()
ORDER BY indexstats.avg_fragmentation_in_percent desc

avg_fragmentation_in_percent > 5 AND < 30
Reorganize Index
ALTER INDEX REORGANIZE

avg_fragmentation_in_percent > 30
Rebuild Index
ALTER INDEX REBUILD

以上是关于sql 检查数据库中索引的索引碎片的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server通过整理索引碎片和重建索引提高速度

sql 检查SQL表索引碎片

sql 检查索引碎片

sql 检查索引碎片

SQL Server数据库表索引碎片整理

sql索引碎片产生的原理 解决碎片的办法(sql碎片整理)