query result cache in oracle 11g
실무중심 오라클자바커뮤니티프로그래밍실무교육센터 http://www.ojcedu.com 오라클 11g의 캐싱은 쿼리의 결과를 캐싱 하는 특징이 있는데 예를 보자. SQL> SELECT name, value, isdefault FROM v$parameter WHERE name LIKE 'result_cache%'; NAME VALUE ISDEFAULT ---------------------------------- ------------------ --------- result_cache_mode MANUAL TRUE result_cache_max_size 3244032 TRUE result_cache_max_result 5 TRUE result_cache_remote_expiration 0 TRUE 4 rows selected. result_cache_mode: Result Cache는 세가지 방법으로 Oracle Hint or alter session, alter system으로 가능하다. Default 값이 MANUAL인데 “RESULT_CACHE”힌트를 명시해야 결과값 캐싱이 된다. result_cache_max_size : 캐싱되는 최대 바이트 사이즈 result_cache_max_result: 단일 resultset에서 캐시되는 최대 비율(기본 5%) result_cache_remote_expiration: 원격오브젝트에 대한 쿼리 결과로 캐싱 되어 유효한 시간. 기본 0은 SQL>ALTER SYSTEM SET result_cache_max_size = 2M SCOPE = MEMORY SQL> SELECT name, value 2 FROM v$parameter 3 WHERE name = 'result_cache_max_size'; NAME VALUE ---------------------------------------- ------------------------- result_cache_max_size 2097152 1 row selected. 이번에는 result cache를 manually로… SQL> SELECT value 2 FROM v$parameter 3 WHERE name = 'result_cache_mode'; VALUE ---------------- MANUAL 1 row selected. SQL> set autotrace traceonly SQL> set timing on SQL> SELECT /*+ RESULT_CACHE */ e.empno, d.dname FROM emp e , dept d WHERE e.deptno = d.deptno ANd e.deptno = 10; EMPNO DNAME ---------- -------------- 7782 ACCOUNTING 7839 ACCOUNTING 7934 ACCOUNTING | 0 | SELECT STATEMENT | | 5 | 1 00 | 4 (0)| 00:00:01 | | 1 | RESULT CACHE | 4tg609zzhkhzs1k1wkzvcsrduk | | | | | | 2 | NESTED LOOPS | | 5 | 1 00 | 4 (0)| 00:00:01 | | 3 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 13 | 1 (0)| 00:00:01 | |* 4 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 | |* 5 | TABLE ACCESS FULL | EMP | 5 | 35 | 3 (0)| 00:00:01 | 이런데 힌트를 써서 결과값을 캐싱 가능한데, 과연 캐싱이 몇번 일어 났는지는 어떻게 확인 할까? SELECT value FROM v$result_cache_statistics WHERE name = 'Find Count'; SQL> SELECT value FROM v$result_cache_statistics WHERE name = 'Find Count'; VALUE --------------------------------------------------------------------------------- 6 캐시 카운터는 SQL을 실행 할 때마다 늘어 난 다는 것을 알 수 있다. |
2015년 10월 14일 수요일
query result cache in oracle 11g
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기