存档

2010年10月22日 的存档,文章数:1

在上一篇文章中,查看表中列属性的SQL语句

查看Oracle中表的简要列属性信息。利用上面的SQL语句,可以改进出来统计表所占物理存储空间大小的语句。

在Oracle中number数字类型所占的空间,计算公式为:

number(p,s) 占用的字节数为: floor( ( p + 1  ) / 2 ) + 1

 

select object_name,sum(decode(data_type,'NUMBER',floor((col_length+1)/2) + 1,col_length)) table_size
from
  (select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length
    from
      (select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale
        from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
          where o.obj#=t.obj#
            and o.name=c.table_name
            and c.owner=u.name
            and o.owner#=u.user#
            and u.name='SCOTT'
            /*and o.name='EMP'*/
           ) tab_cols
   ) col_len
group by object_name;

 

上面的SQL语句统计用户scott的所有表占用的物理空间的字节数。

————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:oracle table storage 表字段 占用空间大小
————————————————————————————————-