统计向oracle每个表中插入一条记录时 , 占用的最大空间

                        统计向oracle每个表中插入一条记录时 , 占用的最大空间

1. 原始需要时 ,  当我们向oracle 中创建一张表的时候 ,  该表会有很多不同类型的字段(字段具有类型 , 长度) ,

   当我们向表中插入一条记录时 , 会占用多大的空间那 ?

 

2. 如果我们知道向表中插入一条记录时占用的空间大小的话 , 我们就可以估计出我们大概需要的空间 ,

    需要多少硬盘空间 ,  从而减少不必要的投资 .

 

-- 统计向每个表中插入一条记录时 , 占用的最大空间
select t2.table_name , 
       (sum(nvl(t2.data_size , 0 )))||' (B)' as  record_size_of_table1  ,  
        round((sum(nvl(t2.data_size , 0 )))/1024 , 4)||' (K)' as  record_size_of_table2
 from
  (select
   t1.TABLE_NAME ,  t1.COLUMN_NAME , t1.DATA_TYPE ,
   case
     when   t1.DATA_TYPE = 'NUMBER' then    floor((nvl(t1.DATA_PRECISION , 0 )+1)/2)+2
     when   t1.DATA_TYPE = 'DATE'   then  7
     else   t1.DATA_LENGTH 
   end  as  data_size
  from user_tab_columns  t1 ) t2 
group by t2.table_name  order by t2.table_name

 


-- 统计向所有表插入一条记录时的 , 占用的最大空间
select
  sum(t2.data_size)||' (B)' ,
  round(sum(t2.data_size)/1024 , 4) ||' (K)' ,
  round(sum(t2.data_size)/1024/1024 , 4) ||' (M)'
from
  (select
   t1.TABLE_NAME ,  t1.COLUMN_NAME , t1.DATA_TYPE ,
   case
     when   t1.DATA_TYPE = 'NUMBER' then    floor((nvl(t1.DATA_PRECISION , 0 )+1)/2)+2
     when   t1.DATA_TYPE = 'DATE'   then  7
     else   t1.DATA_LENGTH 
   end  as  data_size
  from user_tab_columns  t1)
t2

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值