微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查看SQLServer2008数据表占用硬盘的空间大小

@H_404_2@
sp_spaceused
@H_404_2@
显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。 @H_404_2@
语法 @H_404_2@
sp_spaceused [[@objname =] 'objname'] @H_404_2@
[,[@updateusage =] 'updateusage'] @H_404_2@
参数 @H_404_2@
[@objname =] 'objname' @H_404_2@
是为其请求空间使用信息(保留和已分配的空间)的表名。objname 的数据类型是 nvarchar(776),认设置为 NULL。 @H_404_2@
[@updateusage =] 'updateusage' @H_404_2@
表示应在数据库内(未指定 objname 时)还是在特定的对象上(指定 objname 时)运行 DBCC UPDATEUSAGE。值可以是 true 或 false。updateusage 的数据类型是 varchar(5),认设置为 FALSE。 @H_404_2@
返回代码值 @H_404_2@
0(成功)或 1(失败) @H_404_2@
示例 @H_404_2@
A. 有关表的空间信息 @H_404_2@
下例报告为 titles 表分配(保留)的空间量、数据使用的空间量、索引使用的空间量以及由数据库对象保留的未用空间量。 @H_404_2@
USE pubs @H_404_2@
EXEC sp_spaceused 'titles' @H_404_2@
B. 有关整个数据库的已更新空间信息 @H_404_2@
下例概括当前数据库使用的空间并使用可选参数 @updateusage。 @H_404_2@
USE pubs @H_404_2@
sp_spaceused @updateusage = 'TRUE' @H_404_2@
不过此方法,只能查看一个表的大小,一个数据库中一般会有多个表,如何一次性查看某数据库的所有表大小呢? @H_404_2@
@H_404_2@
create table test( @H_404_2@
name varchar(50), @H_404_2@
rows int, @H_404_2@
reserved varchar(20), @H_404_2@
data varchar(20), @H_404_2@
index_size varchar(20), @H_404_2@
unused varchar(20) @H_404_2@
) @H_404_2@
@H_404_2@
insert into test
@H_404_2@
exec sp_MSforeachtable "exec sp_spaceused '?'" @H_404_2@
select * from test order by cast(replace(reserved,'KB','') as int) desc @H_404_2@ @H_404_2@ @H_404_2@
@H_404_2@
@H_404_2@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐