MsSql сколько места занимают таблицы БД

Запрос помогает выяснить сколько места занимают различные таблицы БД и выводит % соотношение + сортировка по убыванию
declare @total_data int
select @total_data = sum(dpages) from sysindexes where indid < 2

select object_name(id) as tablename, dpages as pages, dpages*8 as [size, kb], round(cast(dpages as  float)/@total_data*100, 2) as [ratio, %]   from sysindexes 
where indid < 2
order by dpages desc
PS Позаимствовал тут.