총 1,080,000건의 데이터가 입력되었다. 이제 emp_bulk 테이블을 조회하는 커서와 반복문을 이용한 익명 블록을 만들어 보자. 성능 비교를 위해 총 소요 시간을 출력하는 로직도 추가할 것이다.
입력
DECLARE
-- 커서 선언
CURSOR c1 IS
SELECT employee_id
FROM emp_bulk;
vn_cnt NUMBER := 0;
vn_emp_id NUMBER;
vd_sysdate DATE;
vn_total_time NUMBER := 0;
BEGIN
-- 시작 전 vd_sysdate에 현재시간 설정
vd_sysdate := SYSDATE;
OPEN c1;
LOOP
FETCH c1 INTO vn_emp_id;
EXIT WHEN c1%NOTFOUND;
-- 루프 횟수
vn_cnt := vn_cnt + 1;
END LOOP;
CLOSE c1;
-- 총 소요 시간 계산(초로 계산하기 위해 60 * 60 * 24을 곱함)
vn_total_time := (SYSDATE - vd_sysdate) * 60 * 60 * 24;
-- 루프 횟수 출력
DBMS_OUTPUT.PUT_LINE('전체건수 : ' || vn_cnt);
-- 총 소요 시간 출력
DBMS_OUTPUT.PUT_LINE('소요시간 : ' || vn_total_time);
END;
결과
전체건수: 1080000
소요 시간 : 7