내용 목차
본 장에서는 DBMS_RESULT_CACHE 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명한다.
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'
본 절에서는 DBMS_RESULT_CACHE 패키지에서 제공하는 프러시저와 함수를 알파벳순으로 설명한다.
Result Cache의 BYPASS 모드를 설정하는 프러시저이다.
BYPASS 모드가 켜지면 저장된 결과를 더 이상 사용할 수 없고, 새로운 결과도 저장되지 않는다. 반대로 BYPASS 모드가 꺼지면 Result Cache를 정상적으로 사용할 수 있다.
프로토타입
DBMS_RESULT_CACHE.BYPASS ( bypass_mode IN BOOLEAN );
파라미터
파라미터 | 설명 |
---|---|
bypass_mode |
|
예제
BEGIN DBMS_RESULT_CACHE.BYPASS(TRUE); DBMS_RESULT_CACHE.FLUSH; END; /
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 |
|
retain_stat |
|
반환값
반환값 | 설명 |
---|---|
BOOLEAN | 모든 객체가 지워진 경우 TRUE를 반환한다. |
예제
BEGIN DBMS_RESULT_CACHE.FLUSH; END; /
사용자가 지정한 객체에 종속된 모든 결과를 무효화시킨다.
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('TIBEROPRIGHT', 'EMP');
END;
/
사용자가 지정한 결과를 무효화시킨다.
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; /
Result Cache의 메모리 사용량 정보를 화면에 출력해 준다. 단, tbSQL의 serveroutput 옵션이 켜져있어야 한다.
MEMORY_REPORT 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_RESULT_CACHE.MEMORY_REPORT ( detailed IN BOOLEAN DEFAULT FALSE );
파라미터
파라미터 | 설명 |
---|---|
detailed |
|
예제
BEGIN DBMS_RESULT_CACHE.MEMORY_REPORT; END; /
Result Cache의 현재 상태를 반환한다.
프로토타입
DBMS_RESULT_CACHE.STATUS RETURN VARCHAR2;
반환값
반환값 | 설명 |
---|---|
VARCHAR2 |
|
예제
BEGIN DBMS_OUTPUT.PUT_LINE(DBMS_RESULT_CACHE.STATUS); END; /