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(失败)

结果集
如果省略 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 角色。

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

USE pubs
EXEC sp_spaceused 'titles'

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

USE pubs
sp_spaceused @updateusage = 'TRUE'

权限
执行权限默认授予 public 角色。

DBCC SQLPERF
提供有关所有数据库中的事务日志空间使用情况的统计信息。

语法
DBCC SQLPERF ( LOGSPACE )

注释
事务日志积累每个数据库中数据的更改信息。由 DBCC SQLPERF(LOGSPACE) 返回的信息可用于监视使用的空间大小,并指明何时对事务日志进行备份或截断。

结果集
下表描述结果集内的列。

列名 定义

Database Name 数据库名称,为该数据库显示日志统计信息。 
Log Size (MB) 日志的可用空间的实际大小。该大小比当初为日志空间分配的要小,因为 Microsoft® SQL Server™ 保留一小部分磁盘空间用于内部头信息。 
Log Space Used (%) 事务日志信息当前所占用的日志文件的百分比。 
Status 日志文件状态(总是包含 0)。

权限
DBCC SQLPERF 对任何用户默认权限。

示例
下例显示当前安装的所有数据库的 LOGSPACE 信息。

DBCC SQLPERF(LOGSPACE)
GO

下面是结果集:

Database Name Log Size (MB) Log Space Used (%) Status      
------------- ------------- ------------------ ----------- 
pubs                1.99219            4.26471           0 
msdb                3.99219            17.0132           0 
tempdb              1.99219            1.64216           0 
model                   1.0            12.7953           0 
master              3.99219            14.3469           0