Total Space Used Per Table

  1. SELECT SCHEMA_NAME(o.schema_id) + '.' + OBJECT_NAME(p.object_id) AS NAME,  
  2. SUM(reserved_page_count) * 8 AS total_space_used_kb,  
  3. SUM(CASE WHEN index_id < 2 THEN reserved_page_count ELSE 0 END ) * 8 AS table_space_used_kb,  
  4. SUM(CASE WHEN index_id > 1 THEN reserved_page_count ELSE 0 END ) * 8 AS nonclustered_index_spaced_used_kb,  
  5. MAX(row_count) AS row_count  
  6. FROM sys.dm_db_partition_stats AS p INNER JOIN sys.all_objects AS o ON p.object_id = o.object_id  
  7. WHERE o.is_ms_shipped = 0 GROUP BY SCHEMA_NAME(o.schema_id) + '.' + OBJECT_NAME(p.object_id) ORDER BY NAME  
  8. select B.name,CONVERT(numeric(30,3),(CONVERT(floatSUM(A.used_page_count)*8)/1024)) as [Table Used Size(MB)],  
  9. CONVERT(numeric(30,3),(CONVERT(floatSUM(A.reserved_page_count)*8)/1024)) as [Table Located Size(MB)],  
  10. (CONVERT(numeric(30,3),(CONVERT(floatSUM(A.reserved_page_count)*8)/1024)) - CONVERT(numeric(30,3),(CONVERT(floatSUM(A.used_page_count)*8)/1024))) as [Table Free Size(MB)] ,  
  11. A.row_count from sys.dm_db_partition_stats as A, sys.all_objects as B  
  12. where A.object_id = B.object_id and B.type != 'S' group by name,row_count order by B.name asc