如何将数据库中所有表列出来,按占用空间大小排序,并显示每个表的占用空间
如何将数据库中所有表列出来,按占用空间大小排序,并显示每个表的占用空间
主要是想看看每个表的大小,我知道,单看一个表,可以
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