ORACLE获取表所占用空间大小计算和展示

 ORACLE获取表所占用空间大小计算和展示

  1. 脚本:

                SELECT s.segment_name,
                       decode(SUM(BYTES), null, 0, SUM(BYTES) / 1024)
                  FROM DBA_SEGMENTS S, dba_tables t
                 where s.owner = 'you segment owner'
                   and t.owner = 'your table owner'
                   and s.segment_name = t.table_name
                   and s.blocks is not null
                   and s.blocks > 0
                 group by s.segment_name
                having SUM(BYTES) > 0

                其中有些表的大小为表初始大小,尽管数据行为0,也能包含在其中,因为之前的行被删除,高水位线没下来。

                如果要快速计算表大概拥有的行数可以通过DBA_SEGMENTS 中的blocks汇总值和抽样的blocks中的平均行数的乘积来确定。

  2、格式化:

               将查询的数据导入Excel,在Excel2007中对数据表大小格式化显示公式:

              =IF(C15555<1024,CONCATENATE(C15555,"k"),IF((C15555<1024*1024),CONCATENATE(C15555/1024,"M"),IF((C15555<1024*1024*1024),CONCATENATE(C15555/1024/1024,"G"),C15555)))

               其中C15555为表占空间大小,单位为K,在Excel 2003中公式只支持7层函数嵌套。

               如:                


 

posted @ 2008-08-18 15:20 张中健 阅读(179) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-08-18 16:12 编辑过
Google站内搜索

相关文章:


相关搜索:
表所占用空间 表大小

相关链接: