查看 SqlServer 中查看数据库表大小

本文介绍了一种用于查询 SQL Server 中各个数据库表的空间使用情况的方法,包括表的保留空间、使用空间、索引使用空间及未用空间等详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--查看 SqlServer 中查看数据库表大小 
create table #tb(表名 sysname,记录数 int ,保留空间 varchar(10),使用空间 varchar(10),索引使用空间 varchar(10),未用空间 varchar(10))
go
  insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''
  go
  
  select * from #tb
  go 
  
  drop table #tb
  go

--主要原理: 
 exec sp_spaceused '表名' --取得表占用空間 
 exec sp_spaceused ''--數據庫所有空間 
  
  
 create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_size varchar(100),unused varchar(100)) 
  
 declare @name varchar(100) 
 declare cur cursor  for 
     select name from sysobjects where xtype='u' order by name 
 open cur 
 fetch next from cur into @name 
 while @@fetch_status=0 
 begin 
     insert into #data 
     exec sp_spaceused   @name 
     print @name 
  
     fetch next from cur into @name 
 end 
 close cur 
 deallocate cur 
  
 create table #DataNew(name varchar(100),row int,reserved int,data int,index_size int,unused int) 
  
 insert into #dataNew 
 select name,convert(int,row) as row,convert(int,replace(reserved,'KB','')) as reserved,convert(int,replace(data,'KB','')) as data, 
 convert(int,replace(index_size,'KB','')) as index_size,convert(int,replace(unused,'KB','')) as unused from #data  
  
 select * from #dataNew order by data desc   
exec sp_MSForEachTable 
@precommand=N'
create table ##(
id int identity,
表名 sysname,
字段数 int,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''

update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) 
where id=scope_identity()', @postcommand=N'select * from ## order by id drop table ##'



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值