문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
study:oracle:datadb:2week_1:chap3 [2010/05/13 14:26] starlits |
study:oracle:datadb:2week_1:chap3 [2010/05/13 15:05] starlits |
||
---|---|---|---|
줄 15: | 줄 15: | ||
=== === | === === | ||
^ 최적화 절차 ^ 비용 산정기 ^ 실행계획 생성기 ^ | ^ 최적화 절차 ^ 비용 산정기 ^ 실행계획 생성기 ^ | ||
- | | View Merging | + | | View Merging |
- | | 조건절 진입 | + | | 조건절 진입 |
| 서브쿼리 비내포화 | | 서브쿼리 비내포화 | ||
| M-View의 쿼리 재생성 | | M-View의 쿼리 재생성 | ||
줄 68: | 줄 68: | ||
=== 선택도(Selectivity) === | === 선택도(Selectivity) === | ||
+ | - <color blue> | ||
+ | - 선택도는 <color red> | ||
+ | - 0.0 : 대상 집합에서 전혀 존재하는 않음 | ||
+ | - 1.0 : 모든 대상 집합이 모두 해당 | ||
+ | - 컬럼에 있는 값의 종류가 10가지라면 선택도는 0.1(=1/10) 이다. | ||
+ | |||
+ | == == | ||
+ | **선택도의 값이 낮게 측정되었다** -> <color blue> | ||
=== 카디널러티(Cardinality) === | === 카디널러티(Cardinality) === | ||
+ | - 실행계획에서 <color blue> | ||
+ | - 판정 대상이 가진 결과 건수 혹은 다음 단계로 들어가는 중간결과건수 의미 | ||
+ | - <color blue> | ||
+ | - 선택도가 있음에도 불구하고 카디널러티가 필요한 이유는 **선택도는 단지 비율에 지나지 않기 때문이다** | ||
+ | - 선택도는 단지 비율일 뿐임. 백만 건의 1%와 백 건의 1%는 비율은 같지만 절대량은 같지 않다. | ||
+ | |||
+ | |||
=== 비용(Cost) === | === 비용(Cost) === | ||
+ | - 실행계획에서 <color blue> | ||
+ | - 실행계획 상의 각 연산들을 수행할 때 소요되는 시간비용을 상대적으로 계산한 예측치 | ||
+ | - 통계정보에 CPU와 메모리 상황, 디스크 I/ | ||
+ | |||
+ | == 동일한 평가결과에서 우선순위 결정 == | ||
+ | ^ 규칙기준 | 로우 캐시(Row Cache)에 나타나는 순서대로 선택 | | ||
+ | ^ 비용기준 | 인덱스명의 ASCII 값에 근거해서 결정 | | ||
+ | |||
+ | == 신뢰성의 한계 == | ||
+ | - 비용산정 과정에서 수많은 가정들을 세우고 다양한 계산식을 적용 \\ 그러나 가정들이 완벽할 수 없는 불완전한 가정이므로 때로는 잘못된 비용을 산정하게 되는 한계가 발생 | ||
+ | - 이런 문제의 보완을 위해서 다양한 힌트들과 다양한 초기화 파라메터들이 계속 추가 | ||
==== 실행계획 생성기 ==== | ==== 실행계획 생성기 ==== | ||
+ | |||
+ | - 주어진 쿼리를 처리할 수 있는 적용 가능한 실행계획을 선별하고 비교검토를 거쳐 **가장 최소의 비용을 가진 것을 선택** | ||
+ | - 실행계획에 따른 처리되는 결과는 같다. | ||
+ | - 다양한 액세스 경로들의 조합 | ||
+ | - 여러 유형의 조인 형태 | ||
+ | - 조인 순서 | ||
+ | - <color blue> | ||
+ | |||
+ | === 최적경로 탐색 기법 === | ||
+ | |||
+ | ^ 적응적 탐색 | ||
+ | ^ 경험적 기법 | ||
+ | ^ 힌트 | ||
+ | |||