获取SQL Server数据库里表占用容量大小

1、建立存储过程
代码

ExpandedBlockStart.gif View Code
CREATE  PROCEDURE get_tableinfo  AS
      if  not  exists ( select  *  from dbo.sysobjects  where id  =  object_id(N ' [dbo].[tablespaceinfo] 'and  OBJECTPROPERTY(id, N ' IsUserTable '=  1)
      create  table tablespaceinfo  -- 创建结果存储表
     (nameinfo  varchar( 50) ,
     rowsinfo  int , reserved  varchar( 20) ,
     datainfo  varchar( 20) ,
     index_size  varchar( 20) ,
     unused  varchar( 20) )
    
      delete  from tablespaceinfo  -- 清空数据表
    
      declare  @tablename  varchar( 255-- 表名称
    
      declare  @cmdsql  varchar( 500)
    
      DECLARE Info_cursor  CURSOR  FOR
      select o.name
      from dbo.sysobjects o  where  OBJECTPROPERTY(o.id, N ' IsTable '=  1
      and o.name  not  like N ' #%% '  order  by o.name
    
      OPEN Info_cursor
    
      FETCH  NEXT  FROM Info_cursor
      INTO  @tablename
    
      WHILE  @@FETCH_STATUS  =  0
      BEGIN
    
      if  exists ( select  *  from dbo.sysobjects  where id  =  object_id( @tablenameand  OBJECTPROPERTY(id, N ' IsUserTable '=  1)
      execute sp_executesql
     N ' insert into tablespaceinfo exec sp_spaceused @tbname ',
     N ' @tbname varchar(255) ',
      @tbname  =  @tablename
    
      FETCH  NEXT  FROM Info_cursor
      INTO  @tablename
      END
    
      CLOSE Info_cursor
      DEALLOCATE Info_cursor
      GO


2、执行存储过程进行表容量统计
代码
exec get_tableinfo


3、查看统计结果
代码

select *
from tablespaceinfo
order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

转载于:https://www.cnblogs.com/lxs9731/archive/2012/02/27/2369980.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值