더북(TheBook)

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