SQL Server で全DBのmdfファイルの使用量を見る

create table #tmpfilestats
    ([Fileid] int,
    [FileGroup] int,
    [TotalExtents] int,
    [UsedExtents] int,
    [LogicalName] sysname,
    [FileName] nchar(500))

declare @dbname varchar(50)
declare cursorDB cursor for

select ltrim(rtrim(name)) from sys.databases
    where state_desc='ONLINE'
    and user_access_desc='MULTI_USER'

open cursorDB
fetch cursorDB into @dbname

while @@fetch_status = 0
begin
    insert into #tmpfilestats exec ('USE [' + @dbname + '] DBCC SHOWFILESTATS')
    fetch cursorDB into @dbname
end

close cursorDB
deallocate cursorDB

select * from #tmpfilestats
drop table #tmpfilestats

http://www.sqlserver-query.com/how-to-use-dbcc-showfilestats-result-in-temp-table/ から作成

出力単位はextent であるので、64KB単位となる。extentについては以下を参照。
http://technet.microsoft.com/ja-jp/library/ms190969%28v=sql.90%29.aspx