andrew4582

Table Index Useage

Jan 23rd, 2011
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.11 KB | None | 0 0
  1.  
  2. USE AdventureWorks
  3. GO
  4.  
  5. DECLARE @db_id SMALLINT;
  6. DECLARE @object_id INT;
  7.  
  8. SET @db_id = DB_ID();
  9. SET @object_id = NULL;
  10. --SET @object_id = OBJECT_ID(N'Sales.SalesOrderDetail');
  11.  
  12. IF @db_id IS NULL
  13. BEGIN;
  14.     PRINT N'Invalid database';
  15. END;
  16.  
  17. BEGIN;
  18.  
  19. SELECT    
  20.     table_name,Count(index_name) as table_index_count
  21.     ,AVG(avg_fragmentation_in_percent) as avg_fragmentation_in_percent
  22.     ,AVG(rows)as row_count
  23.  
  24. FROM     (SELECT TOP 100 PERCENT
  25.                 sys.sysobjects.name AS table_name
  26.                 , sys.sysindexes.name AS index_name
  27.                 , sys.sysindexes.rows
  28.                 , object_id
  29.                 ,avg_fragmentation_in_percent, fragment_count
  30.                 , avg_fragment_size_in_pages, page_count
  31.                 , avg_page_space_used_in_percent, record_count
  32.             FROM master.sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL, 'LIMITED') AS dm_db_index_physical_stats_1
  33.                  INNER JOIN sys.sysindexes ON object_id = sys.sysindexes.id
  34.                  INNER JOIN sys.sysobjects ON sys.sysindexes.id = sys.sysobjects.id
  35.         ) AS sys_data
  36. GROUP BY table_name
  37. ORDER BY
  38.     --table_name,
  39.     row_count desc,
  40.     AVG(avg_fragmentation_in_percent) DESC
  41.  
  42. END;
  43. GO
Advertisement
Add Comment
Please, Sign In to add comment