SQLServer查看数据表占用硬盘的空间大小:sp_spaceused

sp_spaceused @objname=],  [ @updateusage=]  

Parameter

@objname='objname' ----------------------------要查询的对象名,不指定此参数显示整个数据库的大小。

[ @updateusage=] 'updateusage'----------------是否使用DBCC UPDATEUSAGE更新空间使用信息。

显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。
详细语法见: MSDN


示例:
A. 有关表的空间信息
下例报告为 titles 表分配(保留)的空间量、数据使用的空间量、索引使用的空间量以及由数据库对象保留的未用空间量。
EXEC sp_spaceused 'titles'

B. 有关整个数据库的已更新空间信息
下例概括当前数据库使用的空间并使用可选参数 @updateusage。 
sp_spaceused @updateusage = 'TRUE'

不过此方法,只能查看一个表的大小,一个数据库中一般会有多个表,如何一次性查看某数据库的所有表大小呢?
drop table test_space

create table test_space( 
name varchar(255), 
[rows] int, 
reserved varchar(50), 
data varchar(50), 
index_size varchar(50), 
unused varchar(50) 
)
 
insert into test_space 
exec sp_MSforeachtable "exec sp_spaceused '?'"

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

sp_MSforeachtable 的使用参见:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值