Oracle Function Result Cache

1666 단어

작용과 용법


Function에서 데이터 세트 캐시를 사용하면 함수 내부 조회 호출 횟수를 줄이고 효율을 높일 수 있으며, 특히 데이터 변동이 빈번하지 않은 (예: 조직 기구) 데이터에 적용된다.11g의 새로운 특성에 속한다.
CREATE OR REPLACE FUNCTION getOperatorNames (v_empIds varchar)
   RETURN VARCHAR RESULT_CACHE
...

값, 유형을 반환한 후 RESULT_CACHE를 추가하면 됩니다.

보관 및 수명 주기


현재 데이터 원본에 통합하여 현재 데이터 사물이 발생함에 따라 리셋합니다.(11g release 1은 "RELIES_ON"[예: result_cache relies_on(tablename)]을 추가로 추가해야 합니다. 11g release 2는 필요하지 않습니다.
cached results can be directly coupled to their underlying data sources.This means that cached results are invalidated and regenerated when transactions occur against the underlying data.
함수를 재구성할 때 원래 캐시 데이터 상태가 잘못되면 새 캐시 데이터가 생성됩니다.(캐시 공간은'최근 최소 사용'알고리즘을 통해 유지보수됨) 다음과 같은 sql문을 통해 볼 수 있습니다.
SELECT id
  ,      name
  ,      type
  ,      status
  ,      invalidations
  FROM   v$result_cache_objects
  ORDER  BY
         id;

모니터링

SELECT name, value
  FROM   v$result_cache_statistics
  WHERE  name IN ('Create Count Success','Find Count');

'Create Count Success'는 캐시 개수,'Find Count'는 적중 횟수로 이해할 수 있습니다.물론, v$result_cache_statistics에는 캐시 크기와 같은 다른 많은 정보가 있습니다.

일부 특성


Function Result Cache는 실행 계획에서 집계되지 않습니다.크로스 응답 지원;자세한 내용은 pl/sql function result cache in 11g

뭐 공부 해요?


오늘 프로젝트의 조회 페이지가 너무 느려서 데이터량이 많고 사용자 체험이 좋지 않습니다.그중에 인원 ID에 따라 이름을 조회하는 기능이 0.3~0.4s를 차지하는데 참을 수가 없어요.redis와 같은 캐시가 있는지 검색을 통해resultcache를 찾아서 적용했습니다.효과가 매우 좋아서 특별히 기록합니다.
oracle는 물이 매우 깊고, 우리는 아직 부유생물일 뿐이다.
더 재미있는 내용,rebey에 오신 것을 환영합니다.cn

좋은 웹페이지 즐겨찾기