SQL Server中如何统计数据库中所有用户表所占空间大小?
2012-07-05 14:30
411 查看
脚本:
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),
index_size varchar(100),unused varchar(100)); create table #DataNew(name varchar(100),row int,reserved int,data int,index_size int,unused int)
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
fetch next from cur into @name
end
close cur
deallocate cur
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;
drop table #Data;
drop table #DataNew;
结果列说明:
name:表名
row : 表中数据的总行数
reserved:为表保留的空间总量
data:表中的数据所使用的空间总量
index_size:表中的索引所使用的空间总量
unused:为表保留但尚未使用的空间总量
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),
index_size varchar(100),unused varchar(100)); create table #DataNew(name varchar(100),row int,reserved int,data int,index_size int,unused int)
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
fetch next from cur into @name
end
close cur
deallocate cur
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;
drop table #Data;
drop table #DataNew;
结果列说明:
name:表名
row : 表中数据的总行数
reserved:为表保留的空间总量
data:表中的数据所使用的空间总量
index_size:表中的索引所使用的空间总量
unused:为表保留但尚未使用的空间总量
相关文章推荐
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SQLPERF提供所有数据库的事务日志空间使用情况统计信息
- T_Sql如何断开指定数据库的所有用户连接
- MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- SqlServer分离所有用户数据库
- 常用SQL:看全部表的空间大小|tempdb使用情况|清空日志|查看日志|查看数据库表|禁用所有约束|系统表|系统视图
- sql查询数据库中所有表的记录条数,以及占用磁盘空间大小。
- 如何将数据库设置为单用户模式 (SQL Server Management Studio 2008)
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
- MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
- 在MS SQLSERVER中如何最快的速度清空所有用户表的数据
- 在MS SQLSERVER中如何最快的速度清空所有用户表的数据
- MS Sql Server查询磁盘的可用空间,数据库数据文件及日志文件的大小及利用率
- SQL--统计出所有数据库内用户表的记录总数
- 如何从 Oracle 数据库创建发布 (SQL Server Management Studio)
- 用户、组或角色 'zgb' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)
- MS SQL Server 数据库修复 未处理修复语句。数据库需处于单用户模式下。解决
- eas bos hr 如何通过SQL查看所有用户被禁用的权限?
- 转:如何修复Team Foundation Server Workgroup Edition 不小心删除了所有Team Foundation Licensed Users组内用户问题