方法1:
可以通过SP_SPACEUSED来查看
sp_spaceused
显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。
语法
sp_spaceused [[@objname =] \'objname\'] [,[@updateusage =] \'updateusage\']
参数
[@objname =] \'objname\'
是为其请求空间使用信息(保留和已分配的空间)的表名。objname 的数据类型是 nvarchar(776),默认设置为 NULL。
[@updateusage =] \'updateusage\'
表示应在数据库内(未指定 objname 时)还是在特定的对象上(指定 objname 时)运行DBCC UP......
sp_spaceused 部门表
结果如下:
表名 行数 保留 空间 数据空间 索引空间 未用空间
--------------------------------------------------------------------------------------
部门表 10040 520 KB 480 KB 16 KB 24 KB 834 KB
方法2:
此方法可以一次性查看所有表所占空间
CREATE TABLE tb_SpaceInfoTable
(
ID int identity(1,1),
name sysname,
rows char(11),
reserved varchar(18),
data varchar(18),
index_size varchar(18),
unused varchar(18)
)
GO
EXEC SP_MSFOREACHTABLE
@COMMAND1 = 'INSERT INTO tb_SpaceInfoTable(name,
rows,
reserved,
data,
index_size,
unused)
EXEC SP_SPACEUSED ''?'''
GO
SELECT * FROM tb_SpaceInfoTable order by cast(replace(data,' KB','') as decimal(28,0)) desc
GO
----------------最简单的方法--------------
create table #t(name varchar(255),rows bigint,reserved varchar(20),data varchar(20),index_size varchar(20),unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t order by cast(left(ltrim(rtrim(reserved)),len(ltrim(rtrim(reserved)))-2) as int) desc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。