SELECT @@Servername AS ServerName ,
DB_NAME() AS DBName ,
sub.SchemaName
,o.name AS 'TableName'
--,sub.NumRows
,subb.RowCounts
,subb.UsedSpaceKB
,subb.TotalSpaceKB
,sub.type_desc
,o.create_date
,o.modify_date
FROM sys.objects o
JOIN (
SELECT OBJECT_SCHEMA_NAME(p.object_id) AS SchemaName ,
OBJECT_NAME(p.object_id) AS TableName ,
i.Type_Desc ,
i.Name AS IndexUsedForCounts ,
SUM(p.Rows) AS NumRows,
p.object_id as TableID
FROM sys.partitions p
JOIN sys.indexes i ON i.object_id = p.object_id AND i.index_id = p.index_id
WHERE i.type_desc IN ( 'CLUSTERED', 'HEAP' ) -- This is key (1 index per table)
AND OBJECT_SCHEMA_NAME(p.object_id) <> 'sys'
GROUP BY p.object_id , i.type_desc , i.Name
--ORDER BY SchemaName , TableName
) sub ON sub.TableName = o.name
INNER JOIN (
SELECT
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 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, p.Rows
) subb on subb.TableName = o.name
WHERE o.Type = 'U' -- User table
ORDER BY
-- o.name
UsedSpaceKB desc
Monday, June 27, 2016
T-SQL: Summary of all tables in a DB
To see a summary of all tables in a DB, similar to the OOTB report:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment