Get Index Fragmentation Percentage for all Tables in SQL Server Database
Here is a useful script I've been able to put together from multiple posts online that gets the estimated index fragmentation for all tables in your database where the fragmentation percentage is greater than the where clause. Here's the SQL:
select object_name(itable.object_id) as tablename,
itable.name as IndexName,indexfrag.avg_fragmentation_in_percent
from sys.dm_db_index_physical_stats(db_id(), null, null, null, 'DETAILED') indexfrag
inner join sys.indexes itable on itable.object_id = indexfrag.object_id
and itable.index_id = indexfrag.index_id-- make sure to set this where clause to the percentage below which you want to exclude results.where indexfrag.avg_fragmentation_in_percent > 20order by avg_fragmentation_in_percent desc, tablename
Popular Articles
Last viewed:
- Silverlight Memory Leak DataGrid, DataForm, DataTemplate, etc...
- C# Free Component to Generate PDF - Convert HTML to PDF
- Change IIS ASP.NET Framework Version Programatically
- Change Password Policy on Windows 2003 Server
- Data Access Layer using SqlDataReader and C#
- How to localize a BoundField / TemplateField HeaderText


Recent comments
1 day 1 hour ago
1 day 6 hours ago
1 week 1 day ago
1 week 1 day ago
1 week 2 days ago
1 week 5 days ago
2 weeks 1 day ago
2 weeks 1 day ago
2 weeks 1 day ago
2 weeks 1 day ago