DBMS 1

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

DBMS_RESULT_CACHE

DBMS 1
Tibero 가이드
Tibero System Package Guide
DBMS_RESULT_CACHE
작성자
dataonair
작성일
2021-02-18 10:36
조회
738





제16장DBMS_RESULT_CACHE




내용 목차






16.1. 개요

16.2. 프로시저와 함수


16.2.1. BYPASS

16.2.2. FLUSH

16.2.3. INVALIDATE

16.2.4. INVALIDATE_OBJECT

16.2.5. MEMORY_REPORT

16.2.6. STATUS





16.1. 개요




DBMS_RESULT_CACHE는 DBA가 데이터베이스의 공유 메모리에 존재하는 Result Cache를 제어할 수 있도록 인터페이스를 제공한다.다음은 DBMS_RESULT_CACHE 패키지 내에 정의된 상수이다.

  • STATUS_BYPS
    STATUS_BYPS CONSTANT VARCHAR(10) := 'BYPASS'
  • STATUS_DISA
    STATUS_DISA CONSTANT VARCHAR(10) := 'DISABLED'
  • STATUS_ENAB
    STATUS_ENAB CONSTANT VARCHAR(10) := 'ENABLED'





16.2. 프로시저와 함수




본 절에서는 DBMS_RESULT_CACHE 패키지에서 제공하는 프로시저와 함수를 알파벳순으로 설명한다.




16.2.1. BYPASS




Result Cache의 BYPASS 모드를 설정하는 프로시저이다.BYPASS 모드가 켜지면 저장된 결과를 더 이상 사용할 수 없고, 새로운 결과도 저장되지 않는다. 반대로 BYPASS 모드가 꺼지면 Result Cache를 정상적으로 사용할 수 있다.

BYPASS 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입

    • 프로시저
      DBMS_RESULT_CACHE.BYPASS (
      bypass_mode IN BOOLEAN
      );
  • 파라미터

    파라미터 설명
    bypass_mode

    • TRUE: Result Cache를 사용할 수 없다.
    • FALSE: Result Cache를 사용할 수 있다.
  • 예제
    BEGIN
    DBMS_RESULT_CACHE.BYPASS(TRUE);
    DBMS_RESULT_CACHE.FLUSH;
    END;
    /





16.2.2. FLUSH




Result Cache에 저장된 모든 객체들을 지우려고 시도한다. 단, 항상 모든 객체가 지워지지는 않는다.

FLUSH 프로시저와 함수의 세부 내용은 다음과 같다.

  • 프로토타입

    • 함수
      DBMS_RESULT_CACHE.FLUSH (
      retain_mem IN BOOLEAN DEFAULT FALSE,
      retain_stat IN BOOLEAN DEFAULT FALSE
      ) RETURN BOOLEAN;
    • 프로시저
      DBMS_RESULT_CACHE.FLUSH (
      retain_mem IN BOOLEAN DEFAULT FALSE,
      retain_stat IN BOOLEAN DEFAULT FALSE
      )
  • 파라미터

    파라미터 설명
    retain_mem

    • TRUE: Result Cache에 존재하는 유휴 메모리를 유지한다.
    • FALSE: Result Cache에 존재하는 유휴 메모리를 해제한다.
    retain_stat

    • TRUE: 통계정보를 유지한다.
    • FALSE: 통계정보를 지운다.
  • 반환값

    반환값 설명
    BOOLEAN 모든 객체가 지워진 경우 TRUE를 반환한다.
  • 예제
    BEGIN
    DBMS_RESULT_CACHE.FLUSH;
    END;
    /





16.2.3. INVALIDATE




사용자가 지정한 객체에 종속된 모든 결과를 무효화시킨다.

INVALIDATE 프로시저와 함수의 세부 내용은 다음과 같다.

  • 프로토타입

    • 객체 이름인 경우
      DBMS_RESULT_CACHE.INVALIDATE (
      owner IN VARCHAR2,
      name IN VARCHAR2
      ) RETURN NUMBER;

      DBMS_RESULT_CACHE.INVALIDATE (
      owner IN VARCHAR2,
      name IN VARCHAR2
      );
    • 데이터 사전 번호인 경우
      DBMS_RESULT_CACHE.INVALIDATE (
      obj_id IN NUMBER
      ) RETURN NUMBER;

      DBMS_RESULT_CACHE.INVALIDATE (
      obj_id IN NUMBER
      );
  • 파라미터

    파라미터 설명
    owner 스키마 이름이다.
    name 객체 이름이다.
    obj_id 데이터 사전 번호이다.
  • 반환값

    반환값 설명
    NUMBER 무효화시킨 객체 수를 반환한다.
  • 예제
    BEGIN
    DBMS_RESULT_CACHE.INVALIDATE('TIBERO', 'EMP');
    END;
    /





16.2.4. INVALIDATE_OBJECT




사용자가 지정한 결과를 무효화시킨다.

INVALIDATE_OBJECT 프로시저의 세부 내용은 다음과 같다.

  • 프로>
  • 결과 객체의 주소인 경우
    DBMS_RESULT_CACHE.INVALIDATE_OBJECT (
    id IN BINARY_INTEGER
    ) RETURN NUMBER;

    DBMS_RESULT_CACHE.INVALIDATE_OBJECT (
    id IN BINARY_INTEGER
    );
  • 결과 객체의 고유번호인 경우
    DBMS_RESULT_CACHE.INVALIDATE_OBJECT (
    cache_id IN VARCHAR2
    ) RETURN NUMBER;

    DBMS_RESULT_CACHE.INVALIDATE_OBJECT (
    cache_id IN VARCHAR2
    );


  • 파라미터

    파라미터 설명
    id 결과 객체의 주소이다.
    cache_id 결과 객체의 고유번호이다.
  • 반환값

    반환값 설명
    NUMBER 무효화시킨 객체수를 반환한다.
  • 예제
    BEGIN
    DBMS_RESULT_CACHE.INVALIDATE_OBJECT(3);
    END;
    /





16.2.5. MEMORY_REPORT




Result Cache의 메모리 사용량 정보를 화면에 출력해 준다. 단, tbSQL의 serveroutput 옵션이 켜져있어야 한다.MEMORY_REPORT 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입

    • 프로시저
      DBMS_RESULT_CACHE.MEMORY_REPORT (
      detailed IN BOOLEAN DEFAULT FALSE
      );
  • 파라미터

    파라미터 설명
    detailed

    • TRUE : 더 자세한 결과가 출력된다.
    • FALSE: 일반적인 결과가 출력된다.
  • 예제
    BEGIN
    DBMS_RESULT_CACHE.MEMORY_REPORT;
    END;
    /





16.2.6. STATUS




Result Cache의 현재 상태를 반환한다.

STATUS 함수의 세부 내용은 다음과 같다.

  • 프로토타입

    • 함수
      DBMS_RESULT_CACHE.STATUS
      RETURN VARCHAR2;
  • 반환값

    반환값 설명
    VARCHAR2

    • STATUS_DISA : Result Cache를 사용할 수 없다.
    • STATUS_ENAB : Result Cache를 사용할 수 있다.
    • STATUS_BYPS : Result Cache를 일시적으로 사용할 수 없다.
  • 예제
    BEGIN
    DBMS_OUTPUT.PUT_LINE(DBMS_RESULT_CACHE.STATUS);
    END;
    /





?4"