본문 바로가기

오라클81

06.I/O 효율화 원리 - 06. RAC 캐시 퓨전 오라클 RAC모델은 공유 디스크 방식에 기반을 두면서 인스턴스 간에 버퍼 캐시까지 공유하는 캐시 퓨전 기술로 발전하였습니다. 튜닝이 잘 되지 않아 많은 블록 I/O를 일으키는 애플리케이션에서 RAC를 도입한다면 부하 분산은 커녕 단일 인스턴스 환경에서보다 더욱 심각한 성능저하 현상을 일으킬 수 있습니다.RAC는 글로벌 캐시라는 개념을 사용합니다. 즉 클러스터링 돼 있는 모든 인스턴스 노드의 버퍼 캐시를 하나의 버퍼 캐시로 간주하빈다. 따라서 필요한 데이터 블록이 로컬 캐시에 없더라도 다른 노드에 캐싱돼 있다면 디스크 I/O를 일으키지 않고 그것을 가져와 읽거나 쓸 수 있습니다. 모든 데이터 블록에 대해 마스터 노드가 각각 정해져 있고, 그 노드를 통해 글로벌 캐시에 캐싱돼 있는 블록의 상태와 Lock정보.. 2020. 2. 14.
06.I/O 효율화 원리 - 05. Direct Path I/O 일반적인 블록 I/O는 DB버퍼 캐시를 경유합니다. 읽고자 하는 블록을 먼저 버퍼 캐시에서 찾아보고, 찾지 못할 때만 디스크에서 읽습니다. 데이터의 변경도 버퍼 캐시에 적재된 블록에서 이루어지며, DBWR 프로세스가 주기적으로 변경된 블록들(dirty 버퍼 블록)을 데이터파일에 기록합니다. 재사용 가능성이 없는 임시 세그먼트 블록들을 읽고 쓸 때도 버퍼 캐시를 경유할 경우 오히려 성능이 더 나빠질 수 있습니다. 오라클은 이럴 때 버퍼 캐시를 경유하지 않고 곧바로 데이터블록을 읽고 쓸 수 있는 Direct Path I/O 기능을 제공합니다. 아래는 이 기능이 작동하는 경우입니다. - Temp 세그먼트 블록들을 읽고 쓸 때 - 병렬 쿼리로 Full Scan을 수행할 때 - nocache 옵션을 지정한 LOB.. 2020. 2. 13.
메모리 자동 관리 방법(PGA,SGA) 9i의 메모리자동관리방법 9i의 메모리 자동관리방법은 PGA만 자동관리 할 수 있습니다. ▶ PGA자동관리를 사용하기 위한 조건 - WORKAREA_SIZE_POLICY 파라미터를 AUTO로 설정 - PGA_AGGREGATE_TARGET 파라미터값을 0 이상으로 설정(PGA 전체 크기 할당) ▶수동관리일 경우 - WORKAREA_SIZE_POLICY 파라미터를 MANUAL로 설정 - sort_area_size, hash_area_size, bitmap_merge_area_size, create_bitmap_area_size 등 *_AREA_SIZE를 따로 설정 테스트 ▶ 현재 PGA관리 상태를 확인(9i R2 환경에서 진행하였음) SQL> show parameter pga NAME TYPE VALUE -.. 2020. 2. 13.
06.I/O 효율화 원리 - 04. Prefetch 오라클에서 한번의 Fetch Call로 Array 크기만큼 여러 개 레코드를 가져오는 것을 ‘Row Prefetch’라고 설명합니다. 하지만 지금 설명하는 Prefetch는 테이블 prefetch와 인덱스 prefetch를 말합니다. 오라클을 포함한 모든 DBMS는 디스크 블록을 읽을 때 곧이어 읽을 가능성이 높은 블록을 미리 읽어오는 Prefetch 기능을 제공합니다. 디스크 I/O가 비용이 크기 때문에 한번의 I/O Call을 통해 다량의 블록을 퍼 올릴 수 있으면 그만큼 성능향상에 도움이 되기 때문입니다. 앞 절의 Multiblock I/O도 prefetch 기능 중하나라고 할 수 있습니다. 지금 설명할 prefetch와 다른점은 한 익스텐트에 속한 인접한 블록들을 Prefetch 한다는 점입니다... 2020. 2. 12.