sqlserver sp_spaceused用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver sp_spaceused用法相关的知识,希望对你有一定的参考价值。

sp_spaceused
显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。

语法
sp_spaceused [[@objname =] ‘objname‘]
    [,[@updateusage =] ‘updateusage‘]

参数
[@objname =] ‘objname‘

是为其请求空间使用信息(保留和已分配的空间)的表名。objname 的数据类型是 nvarchar(776),默认设置为 NULL。

[@updateusage =] ‘updateusage‘

表示应在数据库内(未指定 objname 时)还是在特定的对象上(指定 objname 时)运行 DBCC UPDATEUSAGE。值可以是 true 或 false。updateusage 的数据类型是 varchar(5),默认设置为 FALSE。

返回代码值
0(成功)或 1(失败)

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

USE xxx
EXEC sp_spaceused xxx

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

USE xxx
sp_spaceused @updateusage = ‘TRUE‘

一次性查看某数据库的所有表大小:
create table test( 
name varchar(50), 
rows int, 
reserved varchar(20), 
data varchar(20), 
index_size varchar(20), 
unused varchar(20) 
)
 
insert into test 
exec sp_MSforeachtable "exec sp_spaceused ‘?‘"
select * from  test   order by cast(replace(reserved,‘KB‘,‘‘) as int) desc 

 
0






















以上是关于sqlserver sp_spaceused用法的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer中系统存储过程sp_spaceused

如何获取 sp_spaceused 的 database_size 值?

SQL Server中sp_spaceused统计数据使用的空间总量不正确的原因

sp_spaceused 如何计算具有 BLOB/溢出/行外类型的表的大小?

查看MSSQL数据库每个表占用的空间大小

SQL Server使用sp_spaceused查看表记录存在不准确的情况