IT468 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. sga_target_advice 설명 : sga의 크기에 대한 정보를 알려줍니다. 컬럼설명 SGA_SIZE SGA 크기 SGA_SIZE_FACTOR SGA_SIZE와 SGA의 현재 크기 사이의 비율 ESTD_DB_TIME 이 SGA_SIZE의 예상 DB_TIME ESTD_DB_TIME_FACTOR SGA의 현재 크기에 대한 ESTD_DB_TIME과 DB_TIME의 비율 ESTD_PHYSICAL_READS 예상 물리적 읽기 수 ESTD_BUFFER_CACHE_SIZE 예상 버퍼 캐시 크기 ESTD_SHARED_POOL_SIZE 예상 Shared Pool 크기 CON_ID 컨테이너 ID sql> select * from v$sga_target_advice; SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_.. 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. 이전 1 ··· 96 97 98 99 100 101 102 ··· 117 다음