Estimados.
En un SS2008, tengo una BD que pesa 50 GB, de los cuales tengo libre 20 GB, por lo tanto puedo verificar de manera correcta que el mdf pesa 30 GB, ahsta aca todo bien.
Utilizo el siguiente query:
select sysobjects.name
, sum(case when sysindexes.indid<2 then rows
else 0 end) as rows
, sum(case when sysindexes.indid in (0,1,255) then
sysindexes.reserved
else 0 end) * 8 as reserved
, sum(case when sysindexes.indid in (0,1) then
sysindexes.dpages
when sysindexes.indid=255 then sysindexes.used
else 0 end) * 8 /1024 as Data
, (sum(case when sysindexes.indid in (0,1,255) then
sysindexes.used
else 0 end)
- sum(case when sysindexes.indid in (0,1) then
sysindexes.dpages
when sysindexes.indid=255 then sysindexes.used
else 0 end))*8 as index_size
, (sum(case when sysindexes.indid in (0,1,255) then
sysindexes.reserved-sysindexes.used
else 0 end)*8) as unused
from sysobjects
join sysindexes
on sysobjects.id=sysindexes.id
where xtype='U'
group by sysobjects.name
Mi problema es el siguiente:
Al sumar la columna data me suman 30 GB, y al sumar la columa index_size suma 15 GB, entonces si los sumo me dan 45 GB, pero al revisar el espacio libre del archivo mdf me indica 20 GB.
Atte.
CristianPM
DBA SQL Server Santiago/Chile