-- check to make sure temp tables don't exist
IF (OBJECT_ID('tempdb..#fileStats') IS NOT NULL)
drop table #fileStats
IF (OBJECT_ID('tempdb..#fileGroup') IS NOT NULL)
drop table #fileGroup
-- Create temporary holding tables
create table #fileStats
(
fileID int,
fileGroup int,
totalExtents int,
usedExtents int,
name varchar(255),
fileName varchar(1000)
)
create table #fileGroup
(
groupid int,
groupname varchar(256)
)
-- Insert
insert into #fileStats
exec ('DBCC showfilestats with no_infomsgs')
-- Insert
insert into #fileGroup
select groupid, groupname
from sysfilegroups
-- Get resulting set
-- size returned from showfilestats is in Extents -> 1 Extent is 64kb
-- so we need to multiply the sum of TotalExtents by 64 and then divide by 1024 to get
-- the actual MB
select g.groupname,
sum(TotalExtents)*64.0/1024 AS [Total MB],
sum((TotalExtents - UsedExtents) * 64.0 / 1024.0) AS [Free MB]
from #filestats AS f
join #filegroup AS g
on f.filegroup = g.groupid
group by g.groupname
-- Clean up after self
drop table #filestats
drop table #filegroup
set nocount off
No comments:
Post a Comment