查看Sql Server所有表占用的空间大小
2015-10-21 14:42
267 查看
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
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
相关文章推荐
- 查找消耗资源多的sql
- SQL Server加密存储过程的破解
- redis并发环境下的使用
- [转载] 使用MySQL Proxy解决MySQL主从同步延迟
- Sql Server参数化查询之where in和like实现详解
- SQL查询重复数据和清除重复数据
- 利用redis缓存解决高并发下后端重复请求措施
- MySQL下载安装、配置与使用
- Activiti 5.18 mysql配置
- postgresql 日志配置
- PostgreSQL的日志类型
- Redis数据类型之集合类型--Redis系列五
- [Mysql] Limit分页性能陷阱
- JDBC连接Oracle数据库
- 数据库基础知识
- 经典存储过程;SQl 存储过程
- mysql c sample 程序
- mysql rowid
- mysql varchar
- 使用redis小结