Script para obtener el tamaño de todas las tablas de una BD SQL Server

Pregunta
Como obtener el tamaño de almacenamiento de todas las tablas de una base de datos SQL?

Respuesta
Os presento una fantástica consulta para mostrar ordenadamente el tamaño de todas las tablas de una base de datos SQL. Es muy rápido y sin coste para el rendimiento del servidor. Incluye el tamaño de los índices.

SELECT 
	t.NAME AS NombreTabla,
	s.Name AS Esquema,
	p.rows AS NumFilas,
	SUM(a.total_pages) * 8 AS EspacioTotal_KB, 
	SUM(a.used_pages) * 8 AS EspacioUsado_KB, 
	(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS EspacioNoUsado_KB
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, s.Name, p.Rows
ORDER BY 
	EspacioUsado_KB desc	



Supongo que se puede encontrar el script en varias web, pero yo me he tropezado con él en este enlace: http://stackoverflow.com/questions/15896564/get-table-and-index-storage-size-in-sql-server




Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)


7 thoughts on “Script para obtener el tamaño de todas las tablas de una BD SQL Server

  1. Hola,

    Muchas gracias por el aporte… Yo cambiaría

    p.rows AS NumColumnas,

    por

    p.rows AS NumFilas,

    Un saludo!

  2. Excelente aporte sin duda una gran herramienta este query para mantenimiento y soporte de BD holgadas de información.

Leave a Reply

Your email address will not be published. Required fields are marked *