oracle多列为空与多列不为空的区别小示例

1,测试表的多列为空与多列为空字符串的区别
  1,数据量是1000w
        declare
         type typ_tab_col1 is table of pls_integer index by pls_integer;
         typ_tab_col1_1 typ_tab_col1;
         
        begin
         for i in 1..10000000 loop
           typ_tab_col1_1(i):=i;
         end loop;
        
         forall i in 1..10000000
          insert into t_more_col values(typ_tab_col1_1(i),null,null,null,null,null,null,null,null,null);
         commit;
        end;
    2,列为10列
    3,插入
        1,空用时 已用时间:  00: 00: 19.59
        2,空字符串用时 已用时间:  00: 01: 00.43
        3,小结:空比空字符串插入更快 
    4,查询
        1,在有数据的基础上
        2,空时,查询 已用时间:  00: 00: 00.31
        3,空字符串时,查询       已用时间:  00: 00: 00.45
        4,小结:说明查询时空比空字符串更快
        
    5,更新
      1,在有数据基础上
      2,空时,已用时间:  00: 07: 45.56 update t_more_col set col1=20,col8=20;
      3,空字符串时 已用时间:  00: 03: 18.40
      4,小结:说明空字符串比空更新要快的
    6,删除
      1,在有数据基础上
      2,空时,delete from t_more_col where rownum<100000;已用时间:  00: 00: 00.62
      3,空字符串时 已用时间:  00: 00: 00.54
        4,小结:说明空字符串比空删除快一些
    7,表的结构
      create table t_more_col(col1 int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int, col10 int);
        
    8,数据量
      1,空时,
        00:05:44 SQL> select segment_name,bytes/1024/1024 mb,segment_type from user_segm
          ents where segment_name='T_MORE_COL';
          
          SEGMENT_NAME
          --------------------------------------------------------------------------------
          
                  MB SEGMENT_TYPE
          ---------- ------------------
          T_MORE_COL
                 120 TABLE
     2,空字符时,
        
          SEGMENT_NAME
          -------------------------
          
                  MB SEGMENT_TYPE
          ---------- --------------
          T_MORE_COL
                 320 TABLE
     3,小结:很明显,空比空字符占用的存储空间更少;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-744854/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-744854/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值