총 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
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.