본문 바로가기
스터디북

<11/27> 청춘

by 파이어볼러 2015. 11. 27.

where에서 가장 먼 조건부터 실행하는데 바인드변수나 다른 변수시에는 이것들을 먼저 실행한다


결합인덱스중 사용하지 않은 인덱스 다음 인덱스의 경우 사용하지 못한다?


SQL 보는법?


옵티마이저의 통계 유형


테이블 통계 dba_tab_statistics

행수

블록수

편균행길이


인덱스 통계 dba_ind_statistics

b트리 레벨

구분키

최하위 블록수(leaf)

클러스터링 팩터


시스템 통계 sys_aux_stats$

I/O 성능 및 활용률

CPU 성능 및 활용률


다이내믹 샘플링


통계가 없거나 신뢰할 수 없는 통계일때 등장한다 


카디널리티의 값은 올림처리도 하고 정확한 값은 아님


조나단 루이스

COST란 I/O와 CPU를 이용한 시간 중 가장 좋은 시간을 COST로 나타난다 싱글블록I/O를 기준

옵티마이저가 문장을 수행하는데 걸릴 것이라고 예상하는 추측시간


CBO란 하나의 SQL 에 대한 여러 개의 실행계획 가운데 가장 cost가 적은 실행계획을 선택


목적은 대상 로우를 처리하는데 필요한 자원 사용의 최소화

 - 데이터를 빨리 처리하는데 목적


비용 산정 요소는 다양하다


인라인뷰는 밖으로 빼거나 view로 실행한다


CBO의 성능을 최적으로 유지하기 위해서는 analyze object이 중요하다


예측 시간


 = CPU TIME + I/O TIME에 대한 예측 시간


CPUTIME + Single block I/O TIME + MULTI BLOCK I/O TIME


COST = 예측 시간 / 싱글 블락 I/O 


 = (싱글블락 I/O COUNT + MULTI BLOCK I/O TIME / Single block I/O Time) +

      (CPU TIME / Single block I/O time)


통계에서 얻을 수 있는 두가지 튜닝 포인트 


주: db block gets는 데이터베이스에서 현재 블록을 읽은 횟수를 나타내고, consistent 

gets는 특정 SCN(시스템 변경 번호)을 만족해야 하는 블록을 읽은 횟수를 나타내며, 

physical reads는 디스크에서 블록을 읽은 횟수를 나타냅니다. 일반적으로 모니터되는 두 

가지 통계는 db block gets와 consistent gets입니다. 이러한 통계는 검색된 행 수에 

비해 낮아야 합니다. 정렬은 디스크보다는 메모리에서 수행되어야 합니다. 


'스터디북' 카테고리의 다른 글

[11/27] Plan_table  (0) 2015.11.27
[11/27] 10053 trace  (0) 2015.11.27
[11/26] Optimizer 용어들  (0) 2015.11.26
[11/26] exec print_table  (0) 2015.11.26
[11/26] partition table  (0) 2015.11.26