본문 바로가기

Database

[ SQL ] 숫자 타입 별 작업 속도 차이

 

오라클 내에는 NUMBER 뿐아니라 INTEGER, DOUBLE, FLOAT, DECIMAL, LONG, BINARY_INTEGER, PLS_INTEGER 등과 같은 데이터 타입이 존재한다. 다만 오라클 사용자가 조금 더 편하게 코딩할 수 있도록 NUMBER로 사용할 수 있다. 모든 숫자타입을 NUMBER로 사용하게 되면 오라클 엔진에서 정확한 타입으로 변환 후 작업을 수행하기 때문에 처음부터 데이터 타입을 정확히 명시하는 것보다 조금 느릴 수 있다. 

 


속도 예시 1

SET SERVEROUTPUT ON;
SET TIMING ON;
-- 실행시킬 쿼리의 시간을 표시해 줌
DECLARE

    AA          NUMBER(10);
    BB          NUMBER(10);
    CC          NUMBER(10);

BEGIN

    FOR I IN 1..10000000
    LOOP
    
        AA := I + 1;
        BB := I + 2;
        CC := AA + BB;
    
    END LOOP
    ;

    DBMS_OUTPUT.PUT_LINE(CC);

END;​

변수의 데이터 타입이 NUMBER일 경우 실행속도

 

속도 예시 2

SET SERVEROUTPUT ON;
SET TIMING ON;
-- 실행시킬 쿼리의 시간을 표시해 쥼
DECLARE

    AA          INTEGER;
    BB          INTEGER;
    CC          INTEGER;

BEGIN

    FOR I IN 1..10000000
    LOOP
    
        AA := I + 1;
        BB := I + 2;
        CC := AA + BB;
    
    END LOOP
    ;

    DBMS_OUTPUT.PUT_LINE(CC);

END;

 

변수의 데이터 타입이 INTEGER일 경우 실행속도

 

속도 예시 3

SET SERVEROUTPUT ON;
SET TIMING ON;
-- 실행시킬 쿼리의 시간을 표시해 쥼
DECLARE

    AA          BINARY_INTEGER;
    BB          BINARY_INTEGER;
    CC          BINARY_INTEGER;

BEGIN

    FOR I IN 1..10000000
    LOOP
    
        AA := I + 1;
        BB := I + 2;
        CC := AA + BB;
    
    END LOOP
    ;

    DBMS_OUTPUT.PUT_LINE(CC);

END;

 

변수의 데이터 타입이 BINARY_INTEGER일 경우 실행속도

 

속도 예시 4

SET SERVEROUTPUT ON;
SET TIMING ON;
-- 실행시킬 쿼리의 시간을 표시해 쥼
DECLARE

    AA          PLS_INTEGER;
    BB          PLS_INTEGER;
    CC          PLS_INTEGER;

BEGIN

    FOR I IN 1..10000000
    LOOP
    
        AA := I + 1;
        BB := I + 2;
        CC := AA + BB;
    
    END LOOP
    ;

    DBMS_OUTPUT.PUT_LINE(CC);

END;

 

변수의 데이터 타입이 PLS_INTEGER일 경우 실행속도

 

※ 데이터 타입을 어떤 걸로 주는 냐에 따라 작업 속도가 상이 한 것을 볼 수 있다. ※

 

 

 

 

 

 

'Database' 카테고리의 다른 글

[ JAVA ] 추상화(abstract) - 공통된 특성  (0) 2021.05.27
[ SQL ] 사용자정의타입  (0) 2021.05.13
[ SQL ] SCHEDULER (스케줄러)  (0) 2021.05.13
[ SQL ] 반복문  (0) 2021.05.12
[ SQL ] ORACLE INDEX  (0) 2021.05.12