查看Sql Server所有表占用的空间大小

2010-01-26

sp_spaceused可以查看某个表占用的空间,但不能一次查看所有的表。今天研究了一下这个sp,写了下面这个查询:

--刷新系统数据
dbcc updateusage(0) with no_infomsgs

--每页8k
select name = name,id,
rows = convert(char(11), rows),
reserved = ltrim(str(reservedpages * 8.,15,0) + ' KB'),
data = ltrim(str(pages * 8.,15,0) + ' KB'),
index_size = ltrim(str((usedpages - pages) * 8.,15,0) + ' KB'),
unused = ltrim(str((reservedpages - usedpages) * 8.,15,0) + ' KB')
FROM
(select name,id,
reservedpages = sum(a.total_pages),
usedpages = sum(a.used_pages),
pages = sum(
    CASE
     When a.type <> 1 Then a.used_pages
     When p.index_id < 2 Then a.data_pages
     Else 0
    END
   ),
rows = sum(
    CASE
     When (p.index_id < 2) and (a.type = 1) Then p.rows
     Else 0
    END
   )
from sys.partitions p, sys.allocation_units a,sysobjects o
where p.partition_id = a.container_id and p.object_id = o.id
group by name,id
) a
order by reservedpages desc

转载于:https://www.cnblogs.com/hz-blog/p/4897746.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值