본문 바로가기

Oracle

[oracle]SGA

 오라클 SGA 튜닝 

SGA에는 데이터베이스 버퍼, 라이브러리 캐쉬, 딕셔너리 캐쉬, 리두 로그 버퍼가 있으며

이들의 기능은 모두 물리적인 Disk I/O를 최소화 하도록 만들어 졌습니다..


SGA 구분

1. 데이터베이스 버퍼

-. 자주 사용하는 데이터 블록을 메모리에서 유지하여 물리적인 I/O를 줄이는 역할

-. 90%이상 (DSS, DW에서는 좀더 작은 값일 수 있음)

-. db_block_buffers (db_cache_size 9i) 파라메터

-. 데이터베이스 버퍼 캐쉬 적중률
    SELECT  bg.value "DB Block Gets",
                  cg.value "Consistent Gets",
                  pr.value "Physical Reads",
                  round((1-(pr.value/(bg.value+cg.value)))*100, 2) "Hit Ratio"
       FROM  v$sysstat pr,
                  v$sysstat bg,
                  v$sysstat cg
     WHERE  pr.name = 'physical reads'
         AND  bg.name = 'db block gets'
         AND  cg.name = 'consistent gets';


2. 라이브러리 캐쉬

-.공유 SQL 영역으로 한번 사용된 SQL의 정보를 저장하며, 동일 SQL수행 시 재사용하여 parsing에 대한 부하를 줄임

-. 99%이상

-. shared_pool_size 파라메터

-. 라이브러리 캐쉬 적중률
    SELECT  to_char(1-(trunc(sum(reloads)/sum(pins)*100, 5)),99.99999) ratio
        FROM v$librarycache;


3. 딕셔너리 캐쉬

-. 데이터베이스 오브젝트의 구조 정보를 저장하며, 이를 참조할 때 메모리에서 액세스하도록 함

-. 95%이상

-. shared_pool_size 파라메터

-. 딕셔너리 캐쉬 적중률
    SELECT  sum(gets) "gets",
                  sum(getmisses) "getmisses" ,
                  round( (1-(sum(getmisses)/sum(gets)) )*100,2) "Hit Ratio"
       FROM  gv$rowcache
     WHERE gets > 0 ;


4. 리두 로그 버퍼

-. 리두 로그의 버퍼 역할

-. log_buffer 파라메터

-. 리두 로그 Request
    SELECT  value "Redo log request"
        FROM  v$sysstat
       WHERE name = 'redo log space requests';