Calcular espacio reservado, utilizado y de log en SQL Server 2005 y 2008
Una forma sencilla de tener el espacio utilizado de una base de datos SQL Server en un momento dado:
DATOS: SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0
USADO: SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)
LOG: SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0
Para obtenerlo en una única consulta:
SELECT 'nombredelabd' AS basededatos,(SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0) datos, (SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)) usado, (SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0) log
Si queremos tener un pronóstico del crecimiento, sólo será necesario crear un job que cargue los datos en una tabla de históricos.
DATOS: SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0
USADO: SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)
LOG: SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0
Para obtenerlo en una única consulta:
SELECT 'nombredelabd' AS basededatos,(SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0) datos, (SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)) usado, (SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0) log
Si queremos tener un pronóstico del crecimiento, sólo será necesario crear un job que cargue los datos en una tabla de históricos.