Übersicht über verwendete Tabellen und deren Größe:
USE MyDatabase
DECLARE @table table(Id int IDENTITY(1,1), Name varchar(256))
INSERT INTO @table
SELECT b.name + '.'+ a.name FROM sys.tables a INNER JOIN sys.schemas b ON a.schema_id = b.schema_id
INSERT INTO @table
SELECT '-1'
DECLARE @result table( TableName varchar(256), TotalRows int, Reserved varchar(50), DataSize varchar(50), IndexSize varchar(50), UnusedSize varchar(50))
DECLARE @temp varchar(256)
DECLARE @index int
SET @index = 1
WHILE 1=1
BEGIN
SELECT @temp = Name FROM @table WHERE Id = @index
IF @temp = '-1'
BREAK
INSERT @result( TableName, TotalRows, Reserved, DataSize, IndexSize, UnusedSize)
EXEC sp_spaceused @temp
SET @index = @index + 1
END
SELECT c.name+'.'+b.name as [table], cast(REPLACE(a.DataSize, ' KB', '') as int) TableSize, cast(REPLACE(a.IndexSize, ' KB', '') as int) IndexSize, a.*
FROM @result a INNER JOIN sys.tables b ON a.TableName = b.name INNER JOIN sys.schemas c ON b.schema_id = c.schema_id
ORDER BY TableSize desc