db 점검중 buffer cache의 hit율이 낮아 buffer cache의 크기를 증가시켜 주려고 합니다.
오라클은 11g 사용중인데 sga에서 buffer cache의 크기가 자동 할당으로 알고 있는데,
db_block_buffers 파라미터를 조회하면 0으로 나옵니다.
show sga 했을때 조회 화면은 아래와 같습니다.
Total System Global Area 1603411968 bytes
Fixed Size 2253608 bytes
Variable Size 973081816 bytes
Database Buffers 603979776 bytes
Redo Buffers 24096768 bytes
spfile 사용하고 있고요, dynamic 으로 변경 해줘야 할 것 같은데, db_cache_size변경 해주는게 맞나요?
크기는 얼마정도로 변경하면 괜찮을지 여쭤봅니다. buffer cache hit율은 현재 55% 정도 입니다.
alter system set db_cache_size = 크기 이것만 변경해주면 되는지 질문드립니다.
sga_target을 설정하고 자동메모리 관리 방식인 경우에는 DB_CACHE_SIZE를 증가 시킬 경우 LIBRARY_CACHE_SIZE가 감소하여 LIBRARY CACHE 히트율이 감소하고 ora-4031 에러또는 LIBRARY CACHE 관련 에러가 발생할 것으로 예상됩니다.
자동 메모리 관리 방식이 아닌경우에는 sga_target=0으로 설정 후 physical memory의 25~50%를 총 sga크기로 잡습니다. 그리고 SGA의 80~90% 정도를 DB_CACHE_SIZE로 잡으며 10%정도를 LIBRARY_CACHE_SIZE로 잡습니다.
DB_CACHE 히트율이 낮다고 무조건 메모리 사이즈를 늘리는 것보다는 튜닝을 하는 것을 권장드립니다.