Original Post
http://stackoverflow.com/questions/7892334/get-size-of-all-tables-in-database
-------------------------------------------------------------------------------------------------------
SELECT TableName, SchemaName, RowCounts, TotalSpaceKB, UsedSpaceKB, UnusedSpaceKB
FROM (SELECT TOP (100) PERCENT t.name AS TableName, s.name AS SchemaName, p.rows AS RowCounts, SUM(a.total_pages) * 8 AS TotalSpaceKB, SUM(a.used_pages) * 8 AS UsedSpaceKB, (SUM(a.total_pages)
- SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM sys.tables AS t INNER JOIN
sys.indexes AS i ON t.object_id = i.object_id INNER JOIN
sys.partitions AS p ON i.object_id = p.object_id AND i.index_id = p.index_id INNER JOIN
sys.allocation_units AS a ON p.partition_id = a.container_id LEFT OUTER JOIN
sys.schemas AS 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 TableName) AS Size
ORDER BY UsedSpaceKB desc
--------------------------------------------------------------------------------------------------
No comments:
Post a Comment