Heim >Datenbank >MySQL-Tutorial >PL/SQL PLS_INTEGER类型对性能实验测试

PL/SQL PLS_INTEGER类型对性能实验测试

WBOY
WBOYOriginal
2016-06-07 17:25:221064Durchsuche

如果用PLS_INTEGER值运算,Oracle会使用原生机器算法其他的所有数值型的数据类型都和NUMBER数据类型一样使用C语言算法库结果就是

如果用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

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn