SQL Server 空间管理——表空间

SQL Server 中表使用空间查询

一、查询指定表空间使用情况

脚本1

use WideWorldImportersDW
go
sp_spaceused Workload

二、查询库下默认架构所有表空间使用情况

循环对每个表名使用sp_spaceused 即可获取,如脚本2

脚本2

use WideWorldImportersDW
go
--创建临时表,存放表空间使用信息
create table #tableSpace(
	name varchar(100)
	,rows bigint
	,reserved varchar(100)
	,data varchar(100)
	,index_size varchar(100)
	,unused varchar(100)
)
declare @tableName varchar(100)
--查询库中用户表名称,声明游标
declare cur cursor for
select name  from sys.tables
where type='U'

open cur
fetch next from cur into @tableName
while @@FETCH_STATUS=0
begin
	--循环将每个表使用的空间信息插入临时表
	insert into #tableSpace
	exec sp_spaceused @tableName
	fetch next from cur into @tableName
end
close cur
deallocate cur

select * from #tableSpace
order by cast(left(data,len(data)-2) as bigint) desc

drop table #tableSpace

 

三、查询库下所有架构所有表空间使用情况

 

只需要在脚本2的基础上,改动获取表名的查询,将架构和表明结合就好,脚本如下:

脚本3

select s.name +'.'+t.name from sys.tables t
inner join sys.schemas s on s.schema_id=t.schema_id
where type='U'

如果喜欢,可以搜索关注 MSSQLServer 公众号,将有更多精彩内容分享。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值