더북(TheBook)

108,000건을 갱신하는데 대략 8초가 소요되었다. 제대로 갱신됐는지 데이터를 조회해 보자.

입력

    SELECT department_id, dep_name, COUNT(*)
      FROM emp_bulk
     WHERE bulk_id BETWEEN 1 AND 1000
     GROUP BY department_id, dep_name
     ORDER BY department_id, dep_name;

결과

10만여 건의 데이터를 갱신하기 위해 fn_get_depname_normal 함수를 10만 번 호출했다. 하지만 위 결과를 보면 실제로 부서코드 값은 종류별로 보면 NULL을 포함해 총 12가지 뿐이다. 부서번호가 10이면 ‘총무기획부’란 부서명을 가져오는데 총 1,000건이 있으므로 fn_get_depname_normal 함수를 총 1,000번 호출하게 된다. 그런데 굳이 1,000번 호출할 필요 없이 맨 처음 호출됐을 때 해당 부서명 값을 갖고 있다가 다음 번에 동일한 매개변수(부서번호 10)가 들어올 때 이 값을 재활용할 수 있다면 굳이 1,000번을 호출할 필요는 없을 것이다. 과연 이것이 가능할까? 다행히도 오라클 11g부터 가능해졌는데 이를 RESULT CHCHE 기능이라고 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.