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 기능이라고 한다.