日期:2014-05-18  浏览次数:20628 次

如何将数据库中所有表列出来,按占用空间大小排序,并显示每个表的占用空间
如何将数据库中所有表列出来,按占用空间大小排序,并显示每个表的占用空间
主要是想看看每个表的大小,我知道,单看一个表,可以
exec   sp_spaceused   表名   的方式来查看,但是一个一个看太麻烦,有没有办法列出所以表,然后显示每个表的大小。
最好可以按占用空间大小排序。


------解决方案--------------------
EXEC sp_MSforeachtable @command1= "sp_spaceused '? ' "
------解决方案--------------------
按照bill024的思路扩展的
create table test(
name varchar(50),
rows int,
reserved varchar(20),
data varchar(20),
index_size varchar(20),
unused varchar(20)
)

set nocount on
insert into test
EXEC sp_MSforeachtable @command1= "sp_spaceused '? ' "

select * from test order by cast(replace(reserved, 'KB ', ' ') as int) desc

drop table test
------解决方案--------------------
create table #aa ( Name nvarchar(50),rows nvarchar(50),reserved nvarchar(50),data nvarchar(50) ,index_size nvarchar(50),unused nvarchar(50))

insert into #aa EXEC sp_MSforeachtable @command1= "sp_spaceused '? ' "

select * from #aa
order by data

bill024(咖啡熊) 大哥能不能讲一下 sp_MSforeachtable 的用法,还有 都什么参数?



------解决方案--------------------
参考
http://blog.csdn.net/flynetcn/archive/2007/05/30/1631762.aspx