--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.

