andrew4582

_View Table Index Useage

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