Defrag Index and Pull fragmentation statistics in SQL Server

Pull fragmentation statistics:

SELECT 
   
OBJECT_schema_NAME(a.OBJECT_ID)+'.'+OBJECT_NAME(a.OBJECT_ID) AS ObjectName,
   
a.OBJECT_ID AS ObjectID,
 
a.index_id AS IndexID,
 
b.name AS IndexName,
 
a.avg_fragmentation_in_percent AS PercentFragment,
 
a.fragment_count AS TotalFrags,
 
a.avg_fragment_size_in_pages AS PagesPerFrag,
 
a.page_count AS NumPages
FROM sys.dm_db_index_physical_stats(DB_ID('DB Name'),
 
NULL, NULL, NULL , 'DETAILED')
 
AS a
JOIN sys.indexes AS b
ON a.object_id = b.object_id
 
AND a.index_id = b.index_id
WHERE avg_fragmentation_in_percent > 0
ORDER BY ObjectName,PercentFragment DESC

 

Defragment Index -- Rebuild or Reorganize

For slight level of fragmentation

ALTER INDEX IndexName
ON TableName REORGANIZE

For severe fragmentation level

ALTER INDEX IndexName
ON TableName REBUILD

or

ALTER INDEX IndexName
ON TableName REBUILD WITH (
 
FILLFACTOR = 90,
 
ONLINE = ON
)
posted @ 2011-04-27 13:41  Allen Xu  阅读(174)  评论(0编辑  收藏  举报