오라클 내에는 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;
속도 예시 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;
속도 예시 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;
속도 예시 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;
※ 데이터 타입을 어떤 걸로 주는 냐에 따라 작업 속도가 상이 한 것을 볼 수 있다. ※
'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 |