PLS_INTEGER类型对性能的些许奉献

        果用PLS_INTEGER值运算,Oracle会使用原生机器算法
       其他的所有数值型的数据类型都和NUMBER数据类型一样使用C语言算法库
       结果就是PLS_INTEGER值的处理速度比NUMBER型的整数快很多
       而且,PLS_INTEGER在移植硬件平台时不会遇到兼容性问题
       
       对于密集型的整数运算,Think建议大家使用PLS_INTEGER
       不过,如果频繁的PLS_INTEGER和NUMBER型的数据交互,还是建议一开始就使用NUMBER
       如果对精度有要求,也请不要使用,因为PLS_INTEGER用于整数运算,结果会取整
       

       小实验测试一下:

hr@ORCL> ed
Wrote file afiedt.buf

  1  DECLARE
  2    j PLS_INTEGER :=0;
  3  BEGIN
  4    FOR i IN 1..1000000
  5      LOOP
  6        j:=i+1;
  7        IF j=1000
  8        THEN
  9          dbms_output.put_line('Hello Think');
 10        END IF;
 11      END LOOP;
 12* END;
hr@ORCL> /
Hello Think

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.28
hr@ORCL> ed
Wrote file afiedt.buf

  1  DECLARE
  2    j NUMBER :=0;
  3  BEGIN
  4    FOR i IN 1..1000000
  5      LOOP
  6        j:=i+1;
  7        IF j=1000
  8        THEN
  9          dbms_output.put_line('Hello Think');
 10        END IF;
 11      END LOOP;
 12* END;
hr@ORCL> /
Hello Think

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.36


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值