En bases de datos con muchas tablas, podemos necesitar saber cuales son las tablas que más registros tienen y más espacio ocupan, con el fin de mejorar el rendimiento de la base de datos.
Para SQL Server, los datos de las bases de datos de usuarios se encuentran en tablas del sistema. Podemos usar el siguiente QRY para ver el espacio que ocupan todas las tabals de una base de datos en concreto.
USE Mi_base_de_datos; GO SELECTt.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
FROMsys.tables t
INNER JOINsys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOINsys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOINsys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOINsys.schemas s ON t.schema_id = s.schema_id
GROUP BYt.Name, s.Name, p.Rows
ORDER BYTotalSpaceKB DESC