sp_spaceused [[ @objname = ] 'objname' ] [,[ @updateusage = ] 'updateusage' ]
[ @objname=] 'objname'
如果提供完全限定对象名称(包括数据库名称),则数据库名称必须是当前数据库的名称。
objname,则返回整个数据库的结果。
nvarchar(776),默认值为 NULL。
[ @updateusage=] 'updateusage'
false。
exec sp_spaceused
database_name:数据库名称
database_size:database_size 包括数据和日志文件
unallocated space:未保留供数据库对象使用的数据库空间。
reserved:由数据库中对象分配的空间总量。
data:数据使用的空间总量。
index_size:索引使用的空间总量。
unused:为数据库中的对象保留但尚未使用的空间总量。
EXEC sys.sp_spaceused N'userinfo' --查询指定的表名的空间使用情况
database_size 将始终大于 reserved + unallocated_space 之和,因为该值包括日志文件的大小,而 reserved 和 unallocated_space 只考虑数据页。
objname 时,对象的 XML 索引和全文索引所使用的页将计算在 reserved 和index_size 结果中。
如果为具有空间索引的数据库或对象计算空间使用情况,则空间大小列(例如,database_size、 reserved 和 index_size)将包含空间索引的大小。
如果首选该进程,则可以单独运行 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