이 파라미터는 모든 버젼의 오라클에서 사용되며, Oracle block 크기를 단위로 지정하게 됩니다. 이 값은 사용자가 요청하는 데이터를, 메모리 영역에 저장해 둘 수 있는 공간의 크기를 지정하므로 튜닝시 매우 중요한 역할을 합니다.
db_block_buffers 값은 SGA 캐쉬 영역에 존재하는 버퍼의 갯수를 지정 하는데 사용되며, 적절한 캐쉬 크기는 실제 디스크 I/O를 줄이는데 도움이 됩니다.
캐쉬 영역이 적절하게 지정되어 있는지 여부는 buffer cache hit ratio로 측정 가능하며, 일반적으로 90% 이상의 값을 유지하도록 하는 것이 바람직합니다.
buffer cache hit ratio는 다음 SQL을 사용하여 조회 가능합니다.
SELECT ROUND(((1-(SUM(DECODE(name, 'physical reads', value,0))/ (SUM(DECODE(name, 'db block gets', value,0))+ (SUM(DECODE(name, 'consistent gets', value, 0))))))*100),2) || '%' "Buffer Cache Hit Ratio" FROM V$SYSSTAT; |
실행 결과는 다음과 같은 형식으로 나타나게 됩니다.
Buffer Cache Hit Ratio -------------------------------------------------------------------------------- 65.29% |
만약 hit ratio가 90% 미만이라면, hit ratio 가 90% 이상을 유지할 정도로 buffer cache의 크기를 늘려주는 것이 바람직합니다.
이 값이 작을 경우 사용된 데이터가, 다른 데이터를 처리할 메모리 영역을 확보시키기 위해 메모리에서 삭제된 후, 다시 해당 데이터가 요청될 경우 충분한 cache를 확보하였을 때 피할 수 있는 물리 I/O 가 발생하게 됩니다.
그러나 만약
이 값을 가용한 메모리 크기에 비해 너무 크게 지정할 경우에는 OS 에서 swapping이 발생하게 되어 시스템이 hang 상태까지 갈 수
있습니다.
'▶ Tuxedo > 오류 메시지(Oracle)' 카테고리의 다른 글
Oracle 성능애 영향을 미치는 것들-SHARED_POOL_RESERVE_SIZE (0) | 2017.12.21 |
---|---|
Oracle 성능애 영향을 미치는 것들-SHARED_POOL_SIZE (0) | 2017.12.21 |
리소스를 많이 차지 하는 SQL 찾기 (0) | 2017.12.21 |
Killing sessions in UNIX (0) | 2017.12.21 |
SQL*NET SESSION의 DEAD CONNECTION 처리 방법 (0) | 2017.12.21 |