显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。
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(失败)
如果省略 objname,则返回两个结果集。
列名 | 数据类型 | 描述 |
---|---|---|
database_name | varchar(18) | 当前数据库的名称。 |
database_size | varchar(18) | 当前数据库的大小。 |
unallocated space | varchar(18) | 数据库的未分配空间。 |
列名 | 数据类型 | 描述 |
---|---|---|
reserved | varchar(18) | 保留的空间总量。 |
Data | varchar(18) | 数据使用的空间总量。 |
index_size | varchar(18) | 索引使用的空间。 |
Unused | varchar(18) | 未用的空间量。 |
如果指定参数,则返回下面的结果集。
列名 | 数据类型 | 描述 |
---|---|---|
Name | nvarchar(20) | 为其请求空间使用信息的表名。 |
Rows | char(11) | objname 表中现有的行数。 |
reserved | varchar(18) | 为 objname 表保留的空间总量。 |
Data | varchar(18) | objname 表中的数据所使用的空间量。 |
index_size | varchar(18) | objname 表中的索引所使用的空间量。 |
Unused | varchar(18) | objname 表中未用的空间量。 |
sp_spaceused 计算数据和索引使用的磁盘空间量以及当前数据库中的表所使用的磁盘空间量。如果没有给定 objname,sp_spaceused 则报告整个当前数据库所使用的空间。
当指定 updateusage 时,Microsoft® SQL Server™ 扫描数据库中的数据页,并就每个表使用的存储空间对 sysindexes 表作出任何必要的纠正。例如会出现这样一些情况:当除去索引后,表的 sysindexes 信息可能不是当前的。该进程在大表或数据库上可能要花一些时间运行。只有当怀疑所返回的值不正确,而且该进程对数据库中的其它用户或进程没有负面影响时,才应使用该进程。如果首选该进程,则可以单独运行 DBCC UPDATEUSAGE。
执行权限默认授予 public 角色。
下例报告为 titles 表分配(保留)的空间量、数据使用的空间量、索引使用的空间量以及由数据库对象保留的未用空间量。
USE pubs
EXEC sp_spaceused 'titles'
下例概括当前数据库使用的空间并使用可选参数 @updateusage。
USE pubs
sp_spaceused @updateusage = 'TRUE'
执行权限默认授予 public 角色。