How to get the Size of Tables in MS SQL Server

To Check the size tables in a MS SQL Server Database run the below command, You can modify the query to change the output of  Size column to MB's, GB's and so on.  

SELECT 
  t.NAME AS TableName, 
  s.Name AS SchemaName, 
  p.rows AS RowCounts, 
  SUM(a.total_pages) * 8 AS TotalSpaceKB, 
  CAST(
    ROUND(
      (
        (
          SUM(a.total_pages) * 8
        ) / 1024.00
      ), 
      2
    ) AS NUMERIC(36, 2)
  ) AS TotalSpaceMB, 
  SUM(a.used_pages) * 8 AS UsedSpaceKB, 
  CAST(
    ROUND(
      (
        (
          SUM(a.used_pages) * 8
        ) / 1024.00
      ), 
      2
    ) AS NUMERIC(36, 2)
  ) AS UsedSpaceMB, 
  (
    SUM(a.total_pages) - SUM(a.used_pages)
  ) * 8 AS UnusedSpaceKB, 
  CAST(
    ROUND(
      (
        (
          SUM(a.total_pages) - SUM(a.used_pages)
        ) * 8
      ) / 1024.00, 
      2
    ) AS NUMERIC(36, 2)
  ) AS UnusedSpaceMB 
FROM 
  sys.tables t 
  INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id 
  INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID 
  AND i.index_id = p.index_id 
  INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id 
  LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id 
WHERE 
  t.NAME NOT LIKE 'dt%' 
  AND t.is_ms_shipped = 0 
  AND i.OBJECT_ID > 255 
GROUP BY 
  t.Name, 
  s.Name, 
  p.Rows 
ORDER BY 
  t.Name


Comments

Popular posts from this blog

How to Enable / Disable a user in MS SQL Server

How to Create a Database in MS SQL Server