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 ;)
Hola,
Muchas gracias por el aporte… Yo cambiaría
p.rows AS NumColumnas,
por
p.rows AS NumFilas,
Un saludo!
Hola Daniel,
Tiene toda la razón, lo he modificado.
Muchas gracias!
Gracias! muy útil
Muy bueno. Gracias
Excelente aporte sin duda una gran herramienta este query para mantenimiento y soporte de BD holgadas de información.
Gracias por el aporte!!!!
Muy útil!!!
Muchas gracias. Me ha sido de utilidad!
aea
GRANDIOSO AMIGO !