문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣ Tibero7.2.3
문서번호ㅣTADTI194
개요
데이터 버퍼 캐시 영역의 활용을 통해 성능을 개선할 수 있는 방안에 대해 정리합니다.
방법
1. 데이터 버퍼 캐시 영역 증설
공간이 부족하면 한 번에 데이터를 loader 하지 못하고 여러 번 나누어서 loader 해야 하기 때문에 성능이 저하할 수 있습니다. (충분한 메모리 공간 할당 필요)
2. KEEP 데이터 버퍼 캐시 영역 활용
DB 환경에서 빈번하게 사용되는 테이블 데이터를 Keep pool 영역에 상주 시켜 쿼리 수행 간 DISK IO 발생을 줄일 수 있는 방법으로 해당 기능을 사용하기 위해 DB_KEEP_CACHE_SIZE 파라미터 값을 입력해야 합니다. (동적 적용 불가, 재기동 동반)
Tibero 7.2.4 기준 DB_KEEP_CACHE_SIZE 파라미터 정보
| Property | Description |
|---|---|
| Parameter Type | Integer |
| Default Value | 0 |
| Class | Optional, Adjustable, Static, System |
| Range |
DB_KEEP_CACHE_SIZE 설정할 경우, 일반 Buffer 값은 DB_CACHE_SIZE - DB_KEEP_CACHE_SIZE 로 지정합니다.
DB_KEEP_CACHE_SIZE는 DB_CACHE_SIZE 한도 내에서 조정 가능합니다.
만약 OS memory가 증설하여 DB instance의 TOTAL_SHM_SIZE 및 DB_CACHE_SIZE가 기존보다 높아지는 경우, 높게 설정된 DB_CACHE_SIZE 내에서 DB_KEEP_CACHE_SIZE도 조정 가능합니다.
별도 지정 없이 DEFALUT POOL 만 사용하는 예시 (TOTAL_SHM_SIZE=2G, MEMORY_TARGET=4G)
DB_CACHE_SIZE=100M 지정후 조회 예시 (TOTAL_SHM_SIZE=2G, MEMORY_TARGET=4G)
3. RECYCLE 데이터 버퍼 캐시 영역 활용
자주 사용되지 않고 가끔 사용되는 테이블이면서 테이블의 크기가 아주 큰 테이블을 검색할 때 RECYCLE 데이터 버퍼 캐시 영역을 지정합니다.
RECYCLE 데이터 버퍼 캐시 영역을 사용하기 위해 DB_KEEP_CACHE_SIZE 파라미터 값을 지정해야 합니다. (동적 적용 불가, 재기동 동반)
Tibero 7.2.4 기준 DB_RECYCLE_CACHE_SIZE 파라미터 정보
| Property | Description |
|---|---|
| Parameter Type | Integer |
| Default Value | 0 |
| Class | Optional, Adjustable, Static, System |
| Range |
DB_RECYCLE_CACHE_SIZE=100M 지정후 조회 결과 예시 (TOTAL_SHM_SIZE=2G, MEMORY_TARGET=4G)
4. 테이블을 캐싱
warmup 쿼리를 수행하거나 job 수행을 통해 buffer pool에 자주 사용하는 객체가 계속해서 상주할 수 있게 하는 방법입니다.
full scan warmup 쿼리 방법
select /*+ FULL(COLUMN_NMAE)*/ COUNT(*) FROM TARGET_TABLE_NAME;
JOB 으로 캐싱 하는 방법
CREATE OR REPLACE PROCEDURE TARGET_TABLE_NAME_WARMUP
IS
my_variable NUMBER;
BEGIN
select /*+ FULL(COLUMN_NMAE)*/ COUNT(*) FROM TARGET_TABLE_NAME;
DBMS_OUTPUT.PUT_LINE('Number of TARGET: ' || my_variable);
END TARGET_TABLE_NAME_WARMUP;
DECLARE job_no number;
begin
dbms_job.submit (job_no,'TARGET_TABLE_NAME_WARMUP;',sysdate,'SYSDATE + 30/60/24');
end;
/
5. 데이터 버퍼 캐시 영역의 Flush
데이터 버퍼 캐시 영역의 Flush 를 통해 공간을 확보하기 위해 불필요한 데이터들을 제거합니다.
alter system FLUSH BUFFER_CACHE;