to_char与trunc性能比对

工作中我们常用to_char来转换日期,当然,也可以用Trunc

今天有同事说,Trunc性能会高于to_char

是吗?

不知道,但,我们可以用数据验证一下:

 --创建A

create table a_0507 (

  a_id number,

  a_birthday varchar2(10)

);

 --写入

begin

  for v_var in 1 .. 10000000 loop

    insert into a_0507 values(v_var, to_char(sysdate, 'YYYY/MM/DD'));    

  end loop;

end;

 23:38:58 SQL> begin

23:39:01   2    for v_var in 1 .. 10000000 loop

23:39:01   3      insert into a_0507 values(v_var, to_char(sysdate, 'YYYY/MM/DD'));    

23:39:01   4    end loop;

23:39:01   5  end;

23:39:02   6  /

PL/SQL procedure successfully completed.

23:48:29 SQL>  --插入1千万行花了927

PL/SQL procedure successfully completed.

23:25:19 SQL>

 --创建B

create table b_0508 (

  b_id number,

  b_create_data varchar2(10)

);

 --写入

begin

  for v_var in 1 .. 10000000 loop

    insert into b_0508 values(v_var, TRUNC(SYSDATE));    

  end loop;

end;

 23:49:30 SQL> begin 

23:51:42   2    for v_var in 1 .. 10000000 loop

23:51:42   3      insert into b_0508 values(v_var, TRUNC(SYSDATE));    

23:51:42   4    end loop;

23:51:42   5  end;

23:51:44   6  /

PL/SQL procedure successfully completed.

00:01:55 SQL> --插入1千万行花了1011

 天啦!

Trunc多花了44秒,真不敢相信,再来跑一次上边的SQL

结论是。。。跟上一次跑出一样的速度!!!

 二张表大小比对:

select * from user_segments where segment_name='A_0507'; --251658240byte

select * from user_segments where segment_name='B_0508'; --243269632byte

select count(1) from A_0507; --10000000

select count(1) from B_0508; --10000000

 事实证明,to_char性能略高于Trunc,写1千万数据快了44

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值