Llistar el tamany de les taules d’una base de dades:

Métode 1

SELECT 
   sch.name as SchemaName,
   tab.name as TableName,   
   par.rows as RowCounts, 
   sum(alc.total_pages) * 8 / 1024 as EspaiTotalMB,
   sum(alc.used_pages) * 8 /1024 as EspaiUtilitzatMB,
   (sum(alc.total_pages) - sum(alc.used_pages)) * 8 as EspaiNoUtilitzat
FROM sys.tables tab 
INNER JOIN sys.indexes ind ON tab.object_id = ind.object_id 
INNER JOIN sys.partitions par ON ind.object_id = par.object_id and ind.index_id = par.index_id 
INNER JOIN sys.allocation_units alc ON par.partition_id = alc.container_id 
LEFT OUTER JOIN sys.schemas sch ON tab.schema_id = sch.schema_id 
GROUP BY 
   tab.name, 
   sch.name, 
   par.rows 
ORDER BY 5 desc;

Métode 2

CREATE TABLE #RowCountsAndSizes (TableName NVARCHAR(128),rows CHAR(11),      
       reserved VARCHAR(18),data VARCHAR(18),index_size VARCHAR(18), 
       unused VARCHAR(18))

EXEC sp_MSForEachTable 'INSERT INTO #RowCountsAndSizes EXEC sp_spaceused ''?'' '

SELECT TableName,CONVERT(bigint,rows) AS NumberOfRows,
       CONVERT(bigint,left(reserved,len(reserved)-3)) AS SizeinKB
FROM #RowCountsAndSizes 
ORDER BY NumberOfRows DESC,SizeinKB DESC,TableName

DROP TABLE #RowCountsAndSizes