SqlServer查看表大小

查看SqlServer 数据库中各个表多少行 :

SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC

 

数据库磁盘占用量:

select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS nvarchar)+'MB' AS CP from CDR.dbo.sysfiles
where name = 'CDR'

==================================

以下是sp_spaceused和sp_MSforeachtable具体的使用示例: 

exec sp_spaceused '表名'            (查询表所占空间) 
exec sp_spaceused '表名', true       (更新表的空间大小,准确的表空大小) 
exec sp_spaceused                    (数据库大小查询) 
exec sp_MSforeachtable "exec sp_spaceused '?'"     (所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准) 
exec sp_MSforeachtable "exec sp_spaceused '?',true"    (所有用户表空间表小,大数据库慎用)
 

====================详细版============================

做一个项目,第一件事情就是问:“这个数据库多大?”

下面是统计数据库数据量大小的方法

 

通常我们会使用命令: "sp_helpdb @dbname"

例如,查询数据库"testdb3"的使用量

 

exec sp_helpdb testdb3


  "sp_helpdb"是最常用的命令,

 

   但是注意:该命令显示的数据库大小"db_size"并不是指现存有效数据的大小,而是指:数据库物理文件 “数据文件大小 + 日志文件大小”的总和

   例如上例中,数据库"testdb3"对应的数据文件和日志文件:

  218.112 + 916.352 = 1107.88MB

  

  数据库创始之初,数据文件和日志文件的初始大小都是默认的2M或3M

  当插入数据后,数据文件和日志文件的大小会随着数据量的增长而增长

  但是当删除数据的时候,会发生什么情况呢? 

  数据文件、日志文件会变小么?不会的,还是保持原来的大小

 

怎样获取有效数据的大小?

答案是使用"sp_spaceused"存储过程分别统计每张表的数据量

1)  统计单个表的使用空间

 

exec sp_spaceused 'dbo.t1'

 

2) 统计每个表的使用空间

 

exec sp_MSforeachtable "exec sp_spaceused '?'"

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值