標籤:
查詢資料庫中所有表的索引密度和片段資訊,以便為索引的重建和整理提供依據,也可以參考DBCC SHOWCONTIG,通常FRAGMENTATIOIN在30%以上建議重建,否則建議整理
SELECT i.name AS indexname,
o.name AS tablename,
s.name AS schemaname,
f.index_type_desc AS indextype,
f.avg_page_space_used_in_percent AS indexdensity,
f.avg_fragmentation_in_percent AS indexfragmentation,
f.page_count AS pages
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, ‘SAMPLED‘) f
INNER JOIN sys.objects o ON o.object_id = f.object_id
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
INNER JOIN sys.indexes i ON f.object_id = i.object_id AND f.index_id = i.index_id
WHERE page_count > 50
AND f.index_id > 0
ORDER BY o.name, i.index_id
LIMITED | SAMPLED | DETAILED | NULL | DEFAULT
這些模式影響了如何收集片段資料。LIMITED模式掃描堆所有的頁,但對於索引,則只掃描葉級上面的父層級頁。SAMPLED收集在堆或索引中1%採樣率的資料。DETAILED模式掃描所有頁(堆或索引)。DETAILED是執行最慢的,但也是最精確的選項。指定NULL或DEFAULT的效果與LIMITED模式的相同。
檢查SQL Server 2005的索引密度和片段資訊(轉)