오라클 result cache 힌트를 사용한 결과캐싱(오라클힌트/SQL튜닝동영상/SQL교육,오라클동영상/오라클강의/SQL동영상/SQL강의)

Описание к видео 오라클 result cache 힌트를 사용한 결과캐싱(오라클힌트/SQL튜닝동영상/SQL교육,오라클동영상/오라클강의/SQL동영상/SQL강의)

(오라클힌트/SQL튜닝동영상/SQL교육)result cache 힌트를 사용한 결과캐싱

-- result_cache_max_size를 2M로 변경
ALTER SYSTEM SET result_cache_max_size = 2M SCOPE = MEMORY;

-- result_cache_max_size 파라미터값 조회
SELECT name, value
FROM v$parameter
WHERE name = 'result_cache_max_size';

-- result_cache_mode 조회
SELECT value
FROM v$parameter
WHERE name = 'result_cache_mode';

-- 최초 쿼리를 실행, count쿼리가 조금 느리다.
select /*+ result_cache */ count(*)
from myemp1 e, mydept1 d
where d.deptno = d.deptno
and d.deptno != '0';

-- 두번짹 실행에서는 캐싱된 결과에서 쿼리 결과를 가지고 온다.
select /*+ result_cache */ count(*)
from myemp1 e, mydept1 d
where d.deptno = d.deptno
and d.deptno != '0';

-- 물론 원본에 변경이 일어나면 다시 쿼리를 실행하고 결과를 캐싱한다.
insert into myemp1(empno, ename) values (10000009,'이종철');
commit;

-- 원본에 변경이 일어나서 다시쿼리를 실행하므로 느리다.
-- 쿼리를 실행하고 결과를 캐싱한다.
select /*+ result_cache */ count(*)
from myemp1 e, mydept1 d
where d.deptno = d.deptno
and d.deptno != '0';

-- 다음부터는 캐싱된 곳에서 쿼리 결과를 가지고 오니 빠르다.
select /*+ result_cache */ count(*)
from myemp1 e, mydept1 d
where d.deptno = d.deptno
and d.deptno != '0';

-- 결과캐싱이 몇번 일어났는지 확인
select value
from v$result_cache_statistics
where name = 'Find Count';

-- 결과 캐싱된 오브젝트를 확인
select id,type,status,name,block_count,row_count,invalidations
from v$result_cache_objects;

-- SQL쿼리의 캐싱결과, PL/SQL 함수의 캐싱결과를 삭제
exec DBMS_RESULT_CACHE.FLUSH;

Комментарии

Информация по комментариям в разработке