首页 > 技术文章 > 查看数据表大小

zangdalei 2016-09-03 15:28 原文

--返回每个数据表大小:

create table tmp (name varchar(50),rows int,reserved varchar(50),
data varchar(50),index_size varchar(50),unused varchar(50))
insert into tmp (name,rows,reserved,
data,index_size,unused) exec sp_msforeachTable @Command1="sp_spaceused '?'"--sp_spaceused 't_vehicle'
select * from tmp order by data desc
drop table tmp

--看单个表, 占用数据的情况
sp_spaceused '表名'

--查看整个数据库所有表占用空间的情况 但发现从sysindexes中取表, 会少一部分数据表(无主键,无索引的表)
select object_name(id) tablename,--查看的数据表名称
8*reserved/1024 reserved,--索引使用空间
rtrim(8*dpages/1024)+'Mb' used,--使用空间
8*(reserved-dpages)/1024 unused,--未使用空间
8*dpages/1024-rows/1024*minlen/1024 free,--可分配空间
rows,--表中行数
*
from sysindexes
where indid=1
order by reserved desc

推荐阅读