행위

비용기반의 오라클 원리

DB CAFE

thumb_up 추천메뉴 바로가기


목차

1 비용기반의 오라클 원리[편집]

  • 저자 : JONATHAN LEWIS
  • 번역 : 비투엔컨설팅
  • ISBN : 9788955508734
  • 발행(출시)일자 : 2008년 02월 14일
    • 절판

9788955508734.jpg

1.1 CHAPTER 1. 비용(COST)이란?[편집]

1.1.1 옵티마이저 옵션[편집]

1.1.2 비용(COST)의 의미[편집]

1.1.3 쿼리 변환과 비용 계산[편집]

1.1.4 위지위그[편집]

1.1.5 요약[편집]

1.1.6 테스트 스크립트[편집]


1.2 CHAPTER 2. 테이블 스캔[편집]

1.2.1 시작하면서[편집]

1.2.2 지속적인 개선[편집]

1.2.3 블록 크기의 효과[편집]

1.2.4 CPU costing[편집]

1.2.5 CPU costing의 위력[편집]

1.2.6 BCHR은 죽었다! BCHR은 영원하다![편집]

1.2.7 병렬 실행[편집]

1.2.8 Index Fast Full Scan[편집]

1.2.9 파티셔닝[편집]

1.2.10 요약[편집]

1.2.11 테스트 스크립트[편집]


1.3 CHAPTER 3. 단일 테이블 선택도[편집]

1.3.1 시작하면서[편집]

1.3.2 NULL 값 처리[편집]

1.3.3 IN-LIST 처리방식[편집]

1.3.4 10g 업데이트[편집]

1.3.5 범위 기반 검색조건[편집]

1.3.6 10g 업데이트[편집]

1.3.7 조건절이 두 개일 때의 처리방식[편집]

1.3.8 다중 조건일 때의 문제점[편집]

1.3.9 요약[편집]

1.3.10 테스트 스크립트[편집]


1.4 CHAPTER 4. 단순 B-tree 액세스[편집]

1.4.1 기본적인 인덱스 비용 계산식[편집]

1.4.2 시작하면서[편집]

1.4.3 유효 인덱스 선택도[편집]

1.4.4 유효 테이블 선택도[편집]

1.4.5 클러스터링 팩터[편집]

1.4.6 인덱스 액세스 비용에 대한 종합적인 검토[편집]

1.4.7 알고리즘의 확장[편집]

1.4.8 세 가지 선택도[편집]

1.4.9 CPU costing[편집]

1.4.10 끝으로[편집]

1.4.11 요약[편집]

1.4.12 테스트 스크립트[편집]


1.5 CHAPTER 5. 클러스터링 팩터[편집]

1.5.1 기준 예제[편집]

1.5.2 테이블 경합 줄이기(다중 freelist)[편집]

1.5.3 leaf 블록 경합 줄이기(reverse key 인덱스)[편집]

1.5.4 테이블 경합 줄이기(ASSM)[편집]

1.5.5 RAC에서 경합 줄이기(Freelist Groups)[편집]

1.5.6 인덱스 컬럼 순서[편집]

1.5.7 인덱스 컬럼 추가[편집]

1.5.8 통계정보 바로잡기[편집]

1.5.9 sys_op_countchg( ) 테크닉[편집]

1.5.10 비공식 전략[편집]

1.5.11 끝으로[편집]

1.5.12 요약[편집]

1.5.13 테스트 스크립트[편집]


1.6 CHAPTER 6. 선택도 이슈[편집]

1.6.1 여러 가지 데이터 타입[편집]

1.6.2 날짜 값[편집]

1.6.3 문자열 값[편집]

1.6.4 부적절한 데이터 타입[편집]

1.6.5 ‘0’으로 문자 앞쪽을 채울 때의 문제점(leading zeros)[편집]

1.6.6 치명적인 문제를 유발하는 디폴트 값[편집]

1.6.7 이산(discrete) 값의 위험성[편집]

1.6.8 10g 업데이트[편집]

1.6.9 놀라운 sysdate[편집]

1.6.10 함수의 특성[편집]

1.6.11 상관관계에 있는 컬럼[편집]

1.6.12 동적 샘플링[편집]

1.6.13 옵티마이저 프로파일[편집]

1.6.14 이행적 폐쇄[편집]

1.6.15 제약이 만든 조건[편집]

1.6.16 요약[편집]

1.6.17 테스트 스크립트[편집]


1.7 CHAPTER 7. 히스토그램[편집]

1.7.1 시작하면서[편집]

1.7.2 일반적인 히스토그램[편집]

1.7.3 히스토그램과 바인드 변수[편집]

1.7.4 오라클은 언제 히스토그램을 무시하는가?[편집]

1.7.5 도수분포 히스토그램[편집]

1.7.6 도수분포 히스토그램 조작하기[편집]

1.7.7 통계정보 조작 시 주의사항[편집]

1.7.8 높이균형 히스토그램[편집]

1.7.9 계산[편집]

1.7.10 데이터 문제 다시 생각하기[편집]

1.7.11 부적절한 데이터 타입[편집]

1.7.12 위험한 디폴트 값[편집]

1.7.13 요약[편집]

1.7.14 테스트 스크립트[편집]


1.8 CHAPTER 8. 비트맵 인덱스[편집]

1.8.1 시작하면서[편집]

1.8.2 인덱스 컴포넌트[편집]

1.8.3 테이블 컴포넌트[편집]

1.8.4 비트맵 결합[편집]

1.8.5 낮은 카디널리티[편집]

1.8.6 NULL 컬럼[편집]

1.8.7 CPU costing[편집]

1.8.8 재미있는 사례들[편집]

1.8.9 다중 컬럼 인덱스[편집]

1.8.10 비트맵 변환[편집]

1.8.11 요약[편집]

1.8.12 테스트 스크립트[편집]


1.9 CHAPTER 9. 쿼리 변환[편집]

1.9.1 시작하면서[편집]

1.9.2 진화(Evolution)[편집]

1.9.3 필터링[편집]

1.9.4 필터 최적화(Filter Optimization)[편집]

1.9.5 스칼라 서브쿼리[편집]

1.9.6 서브쿼리 팩토링[편집]

1.9.7 Complex View Merging[편집]

1.9.8 Pushing Predicates[편집]

1.9.9 일반적인 서브쿼리[편집]

1.9.10 서브쿼리 파라미터[편집]

1.9.11 서브쿼리의 분류[편집]

1.9.12 세미 조인(Semi Joins)[편집]

1.9.13 안티 조인[편집]

1.9.14 안티 조인의 이상 현상[편집]

1.9.15 NULL과 NOT IN[편집]

1.9.16 Ordered 힌트[편집]

1.9.17 스타 변환 조인[편집]

1.9.18 스타 조인[편집]

1.9.19 향후 전망[편집]

1.9.20 요약[편집]

1.9.21 테스트 스크립트[편집]


1.10 CHAPTER 10. 조인 카디널리티[편집]

1.10.1 조인 카디널리티 기본[편집]

1.10.2 한 쪽에만 필터조건을 적용한 경우[편집]

1.10.3 실환경에서의 조인 카디널리티[편집]

1.10.4 확장과 예외[편집]

1.10.5 범위조건에 의한 조인[편집]

1.10.6 부등호 조인[편집]

1.10.7 조인하는 두 집합이 완전히 겹치지 않는 경우[편집]

1.10.8 히스토그램[편집]

1.10.9 이행적 폐쇄[편집]

1.10.10 세 개 이상 테이블을 조인할 경우[편집]

1.10.11 조인 컬럼에 Null 값을 갖는 경우[편집]

1.10.12 구현 이슈[편집]

1.10.13 골치 아픈 사항들[편집]

1.10.14 어이없는 버그[편집]

1.10.15 다른 관점에서의 접근[편집]

1.10.16 요약[편집]

1.10.17 테스트 스크립트[편집]


1.11 CHAPTER 11. NL(Nested Loops) 조인[편집]

1.11.1 기본 메커니즘[편집]

1.11.2 실사례[편집]

1.11.3 Sanity Checks[편집]

1.11.4 요약[편집]

1.11.5 테스트 스크립트[편집]


1.12 CHAPTER 12. 해시 조인[편집]

1.12.1 시작하면서[편집]

1.12.2 Optimal 해시 조인[편집]

1.12.3 Onepass 해시 조인[편집]

1.12.4 Multipass 해시 조인[편집]

1.12.5 트레이스 파일[편집]

1.12.6 10104 이벤트[편집]

1.12.7 10053 이벤트[편집]

1.12.8 골칫거리[편집]

1.12.9 전통적인 비용계산법[편집]

1.12.10 새로운 비용계산법[편집]

1.12.11 비교 테스트[편집]

1.12.12 다중 테이블 해시 조인[편집]

1.12.13 요약[편집]

1.12.14 테스트 스크립트[편집]


1.13 CHAPTER 13. 정렬과 머지 조인[편집]

1.13.1 시작하면서[편집]

1.13.2 메모리 사용[편집]

1.13.3 CPU 사용[편집]

1.13.4 sort_area_retained_size[편집]

1.13.5 pga_aggregate_target[편집]

1.13.6 실제 I/O[편집]

1.13.7 정렬 비용[편집]

1.13.8 10053 트레이스[편집]

1.13.9 비교 테스트[편집]

1.13.10 머지 조인[편집]

1.13.11 머지 메커니즘[편집]

1.13.12 첫 번째 집합을 정렬할 필요가 없는 머지 조인[편집]

1.13.13 카테지안 머지 조인[편집]

1.13.14 집계[편집]

1.13.15 인덱스[편집]

1.13.16 집합 연산자[편집]

1.13.17 마지막 당부[편집]

1.13.18 요약[편집]

1.13.19 테스트 스크립트[편집]


1.14 CHAPTER 14. 10053 트레이스 파일[편집]

1.14.1 쿼리문[편집]

1.14.2 실행계획[편집]

1.14.3 환경[편집]

1.14.4 트레이스 파일[편집]

1.14.5 파라미터 설정값[편집]

1.14.6 쿼리 블록[편집]

1.14.7 통계 정보[편집]

1.14.8 단일 테이블[편집]

1.14.9 Sanity Checks[편집]

1.14.10 General Plans[편집]

1.14.11 Join order[1][편집]

1.14.12 Join order[2][편집]

1.14.13 Join order[3][편집]

1.14.14 Join order[4][편집]

1.14.15 Join order[5][편집]

1.14.16 Join order[6][편집]

1.14.17 Join order[7][편집]

1.14.18 Join order[8][편집]

1.14.19 Join order[9][편집]

1.14.20 Join order[10][편집]

1.14.21 Join order[11][편집]

1.14.22 Join order[12][편집]

1.14.23 Join order[13][편집]

1.14.24 Join order[14][편집]

1.14.25 Join order[15][편집]

1.14.26 Join order[16][편집]

1.14.27 Join order[17][편집]

1.14.28 Join order[18][편집]

1.14.29 조인 평가 요약[편집]

1.14.30 테스트 스크립트[편집]

1.14.31 APPENDIX A 업그레이드 시[편집]

1.14.32 dbms_stats[편집]

1.14.33 도수분포 히스토그램[편집]

1.14.34 CPU costing[편집]

1.14.35 반올림 오차[편집]

1.14.36 바인드 변수 Peeking[편집]

1.14.37 조인 컬럼에 NULL 값을 갖는 경우[편집]

1.14.38 B-tree에서 비트맵으로 전환[편집]

1.14.39 Index Skip-Scans[편집]

1.14.40 AND-Equal[편집]

1.14.41 인덱스 해시 조인[편집]

1.14.42 In-List 조건에 대한 비용계산의 개선[편집]

1.14.43 이행적 폐쇄[편집]

1.14.44 sysdate 계산식의 개선[편집]

1.14.45 구성 컬럼이 모두 NULL인 인덱스 엔트리 포함[편집]

1.14.46 pga_aggregate_target[편집]

1.14.47 정렬(Sorting)[편집]

1.14.48 그룹핑(Grouping)[편집]

1.14.49 Sanity Checks[편집]

1.14.50 조건식이 컬럼 한계 값을 벗어나는 경우[편집]

1.14.51 데이터 타입 조작[편집]

1.14.52 옵티마이저 모드[편집]

1.14.53 역순정렬 인덱스[편집]

1.14.54 Complex View Merging[편집]

1.14.55 Unnest 서브쿼리[편집]

1.14.56 스칼라 및 필터 서브쿼리[편집]

1.14.57 병렬 쿼리의 변화 x 2[편집]

1.14.58 동적 샘플링[편집]

1.14.59 임시 테이블[편집]

1.14.60 딕셔너리 통계정보[편집]


2 APPENDIX B 옵티마이저 파라미터[편집]


3 optimizer_features_enable 570[편집]


4 10053 트레이스 파일 572[편집]


5 v$sql_optimizer_env 577[편집]

6 인덱스 579[편집]