I/O 비용 모델 

 - I/O 비용 모델에서 비용은 디스크 I/O Call 횟수를 의미한다. 

 - 인덱스를 경유한 테이블 엑세스 시에는 Single Block I/O 방식이 사용된다. 

   이는 읽게 될 물리적 블록 개수가 엑세스 비용과 일치한다. 

 - cost 

     = blevel + (리프 블록 수 x 유효 인덱스 선택도 ) + (클러스터링 팩터 x 유효 테이블 선택도)


Full Scan에 의한 테이블 엑세스 비용 

 - 테이블을 Full Scan 할 때는 HWM 아래쪽 블록을 순차적으로 읽어 들이는 과정에서 발생하는 

    I/O Call 횟수로 비용을 계산한다. 

 - Multiblock I/O 단위를 증가시킬수록 I/O Call 횟수가 줄고 예상 비용도 준다 


I/O 비용 모델의 비현실적인 가정 

 - Single Block I/O 와 Multiblock I/O는 비용이 같다. 

 - 캐싱 효과를 전혀 고려하지 않는다. 

 - 이를 보정하기 위한 8버전 부터 제공된 파라미터 

     ● optimizer_index_cost_adj 

          - 이 파라미터는 인덱스 탐색 비용을 조정하고자 할 때 사용하며, 설정할 수 있는 값의 

            범위는 1 ~ 10000 이다. 기본 값으로 설정된 100이란 수치는, 한 번의 I/O Call을 통해 

            single block read 방식으로 한 블록을 읽는 비용과 multiblock read 방식으로 

            여러 블록을 읽는 비용을 같게 평가하라는 뜻이다. 

          - 이 값을 낮게 설정할수록 옵티마이저는 테이블 스캔보다 인덱스를 이용한 

            테이블 엑세스를 선호하게 된다. 

     ● optimizer_index_caching 

          - NL 조인에서 inner 쪽 인덱스 블록이 캐싱돼 있을 가능성을 옵티마이저에게 알려주는 

            파라미터이며, IN-List Iterator 방식으로 인덱스를 탐색할 때 읽게 되는 인덱스 블록 

            엑세스 비용에도 영향을 미친다. 

          - 설정할 수 있는 값의 범위는 0 ~ 100이며, 이 값을 높게 설정할수록 옵티마이저는 

            인덱스를 이용한 NL 조인을 선호하게 된다. 


CPU 비용 모델 

 - 모든 데이터베이스 오퍼레이션은 CPU를 사용하며, 경우에 따라서는 

   I/O 보다 성능에 더 큰 영향을 끼치기도 한다. 

 - 블록 I/O가 소량인데도 쿼리 수행 시간이 상당히 오래 걸리는 경우 

      ● 해시 조인할 때, 해시 체인에 달린 레코드가 많아 해시 체인을스캔하는 부하가 심할때 

      ● 캐싱된 블록을 반복적으로 읽는데, 한 블록 내에서 매번 비효율적으로 많은 레코드를 

          스캔할때 

      ● 버퍼를 Pin한 상태에서 같은 블록을 반복 엑세스할 때 

      ● 다량의 레코드를 읽으면서 건건이 여러 개의 사용자 정의 함수를 반복 호출할 때 

      ● 메모리 소트를 반복할 때

 - 다소 CPU 사용량이 증가하는 경우 

      ● 조건절 개수가 아주 많을 때 

      ● 조건절이나 select-list에 연산 집약적인 작업을 많이 포함할 때

 - CPU 비용 모델에서 비용계산식 

     cost = ( #SRds * sreadtim + #MRds *mreadtim + #CPUCycles / cpuspeed ) / sreadtim 


CPU 비용 

 - CPU 비용 모델에서 말하는 비용은, 쿼리의 예상 총 수행 시간을 single Block I/O 시간 단위로 

   표현한 것이라고 할 수 있다.   

'ORACLE > SQLP' 카테고리의 다른 글

성능고도화 4-1. 쿼리 변환이란  (0) 2016.12.26
성능고도화 3-8. 통계정보2  (0) 2016.12.26
성능고도화 3-6 히스토그램  (0) 2016.12.26
성능고도화 3-5. 카디널리티  (0) 2016.12.26
성능고도화 3-4. 통계정보1  (0) 2016.12.26

+ Recent posts