查询数据库空间使用情况

sp_spaceused [[ @objname = ] 'objname' ] 
[,[ @updateusage = ] 'updateusage' ]

@objname='objname'

请求其空间使用信息的表、索引视图或队列的限定或非限定名称。 仅当指定限定对象名称时,才需要使用引号。 如果提供完全限定对象名称(包括数据库名称),则数据库名称必须是当前数据库的名称。

如果未指定 objname,则返回整个数据库的结果。

objname 的数据类型为 nvarchar(776),默认值为 NULL。

@updateusage='updateusage'

指示应运行 DBCC UPDATEUSAGE 以更新空间使用信息。 当未指定 objname 时,将对整个数据库运行该语句;否则,将对 objname 运行该语句。 值可以为 true 或false updateusage 的数据类型为 varchar(5),默认值为 false

exec sp_spaceused

database_name:数据库名称

database_size:当前数据库的大小 (MB)。 database_size 包括数据和日志文件

unallocated space:未保留供数据库对象使用的数据库空间。

 

reserved:由数据库中对象分配的空间总量。

data:数据使用的空间总量。

index_size:索引使用的空间总量。

unused:为数据库中的对象保留但尚未使用的空间总量。

 

EXEC sys.sp_spaceused N'userinfo'  --查询指定的表名的空间使用情况

 

database_size 将始终大于 reserved + unallocated_space 之和,因为该值包括日志文件的大小,而 reserved 和 unallocated_space 只考虑数据页。

在这两个结果集的 index_size 中,都包括了 XML 索引和全文索引使用的页。 当指定 objname 时,对象的 XML 索引和全文索引所使用的页将计算在 reserved 和index_size 结果中。

如果为具有空间索引的数据库或对象计算空间使用情况,则空间大小列(例如,database_size、 reserved 和 index_size)将包含空间索引的大小。

指定 updateusage 时,SQL Server 数据库引擎将扫描数据库中的数据页,并根据每个表所使用的存储空间对 sys.allocation_units 和 sys.partitions 目录视图进行必要的更正。 在某些情况下(例如删除索引后、表的空间信息不是当前信息时),需要执行该操作。 updateusage 在大型表或数据库上运行会花费一些时间。 只有当怀疑所返回的值不正确,而且该进程对数据库中的其他用户或进程没有负面影响时,才应使用 updateusage 如果首选该进程,则可以单独运行 DBCC UPDATEUSAGE。

简单查询表记录数从大到小排序

select max(object_name(object_id)) as tablename, sum(row_count) rows from sys.dm_db_partition_stats
where index_id<2
group by object_id
order by sum(row_count) desc

简单查询表数据Size从大到小排序

select max(object_name(object_id)) as tablename, (sum(in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count) *8) as size_kb from sys.dm_db_partition_stats
where index_id<2
group by object_id
order by sum(in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)desc

 

转载于:https://www.cnblogs.com/gjhjoy/p/3517324.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值