读书人

PLS_INTEGER部类对性能的些许奉献

发布时间: 2013-01-26 13:47:03 作者: rapoo

PLS_INTEGER类型对性能的些许奉献
果用PLS_INTEGER值运算,Oracle会使用原生机器算法
其他的所有数值型的数据类型都和NUMBER数据类型一样使用C语言算法库
结果就是PLS_INTEGER值的处理速度比NUMBER型的整数快很多
而且,PLS_INTEGER在移植硬件平台时不会遇到兼容性问题

对于密集型的整数运算,Think建议大家使用PLS_INTEGER
不过,如果频繁的PLS_INTEGER和NUMBER型的数据交互,还是建议一开始就使用NUMBER
如果对精度有要求,也请不要使用,因为PLS_INTEGER用于整数运算,结果会取整

小实验测试一下:

hr@ORCL> edWrote 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 ThinkPL/SQL procedure successfully completed.Elapsed: 00:00:00.28hr@ORCL> edWrote 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 ThinkPL/SQL procedure successfully completed.Elapsed: 00:00:00.36


读书人网 >其他数据库

热点推荐