메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

비용기반의 오라클 원리

DB CAFE
Dbcafe (토론 | 기여)님의 2024년 9월 30일 (월) 22:33 판 (새 문서: == 비용기반의 오라클 원리 == * 저자 : JONATHAN LEWIS * 번역 : 비투엔컨설팅 * ISBN : 9788955508734 * 발행(출시)일자 : 2008년 02월 14일 ** 절판 https://contents.kyobobook.co.kr/sih/fit-in/458x0/pdt/9788955508734.jpg === CHAPTER 1. 비용(COST)이란? === ==== 옵티마이저 옵션 ==== ==== 비용(COST)의 의미 ==== ==== 쿼리 변환과 비용 계산 ==== ==== 위지위그 ==== ==== 요약 ==== ==== 테스트 스크립트 ==== ---- === CHAPTER 2...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

비용기반의 오라클 원리

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

9788955508734.jpg

CHAPTER 1. 비용(COST)이란?

옵티마이저 옵션

비용(COST)의 의미

쿼리 변환과 비용 계산

위지위그

요약

테스트 스크립트


CHAPTER 2. 테이블 스캔

시작하면서

지속적인 개선

블록 크기의 효과

CPU costing

CPU costing의 위력

BCHR은 죽었다! BCHR은 영원하다!

병렬 실행

Index Fast Full Scan

파티셔닝

요약

테스트 스크립트


CHAPTER 3. 단일 테이블 선택도

시작하면서

NULL 값 처리

IN-LIST 처리방식

10g 업데이트

범위 기반 검색조건

10g 업데이트

조건절이 두 개일 때의 처리방식

다중 조건일 때의 문제점

요약

테스트 스크립트


CHAPTER 4. 단순 B-tree 액세스

기본적인 인덱스 비용 계산식

시작하면서

유효 인덱스 선택도

유효 테이블 선택도

클러스터링 팩터

인덱스 액세스 비용에 대한 종합적인 검토

알고리즘의 확장

세 가지 선택도

CPU costing

끝으로

요약

테스트 스크립트


CHAPTER 5. 클러스터링 팩터

기준 예제

테이블 경합 줄이기(다중 freelist)

leaf 블록 경합 줄이기(reverse key 인덱스)

테이블 경합 줄이기(ASSM)

RAC에서 경합 줄이기(Freelist Groups)

인덱스 컬럼 순서

인덱스 컬럼 추가

통계정보 바로잡기

sys_op_countchg( ) 테크닉

비공식 전략

끝으로

요약

테스트 스크립트


CHAPTER 6. 선택도 이슈

여러 가지 데이터 타입

날짜 값

문자열 값

부적절한 데이터 타입

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

치명적인 문제를 유발하는 디폴트 값

이산(discrete) 값의 위험성

10g 업데이트

놀라운 sysdate

함수의 특성

상관관계에 있는 컬럼

동적 샘플링

옵티마이저 프로파일

이행적 폐쇄

제약이 만든 조건

요약

테스트 스크립트


CHAPTER 7. 히스토그램

시작하면서

일반적인 히스토그램

히스토그램과 바인드 변수

오라클은 언제 히스토그램을 무시하는가?

도수분포 히스토그램

도수분포 히스토그램 조작하기

통계정보 조작 시 주의사항

높이균형 히스토그램

계산

데이터 문제 다시 생각하기

부적절한 데이터 타입

위험한 디폴트 값

요약

테스트 스크립트


CHAPTER 8. 비트맵 인덱스

시작하면서

인덱스 컴포넌트

테이블 컴포넌트

비트맵 결합

낮은 카디널리티

NULL 컬럼

CPU costing

재미있는 사례들

다중 컬럼 인덱스

비트맵 변환

요약

테스트 스크립트


CHAPTER 9. 쿼리 변환

시작하면서

진화(Evolution)

필터링

필터 최적화(Filter Optimization)

스칼라 서브쿼리

서브쿼리 팩토링

Complex View Merging

Pushing Predicates

일반적인 서브쿼리

서브쿼리 파라미터

서브쿼리의 분류

세미 조인(Semi Joins)

안티 조인

안티 조인의 이상 현상

NULL과 NOT IN

Ordered 힌트

스타 변환 조인

스타 조인

향후 전망

요약

테스트 스크립트


CHAPTER 10. 조인 카디널리티

조인 카디널리티 기본

한 쪽에만 필터조건을 적용한 경우

실환경에서의 조인 카디널리티

확장과 예외

범위조건에 의한 조인

부등호 조인

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

히스토그램

이행적 폐쇄

세 개 이상 테이블을 조인할 경우

조인 컬럼에 Null 값을 갖는 경우

구현 이슈

골치 아픈 사항들

어이없는 버그

다른 관점에서의 접근

요약

테스트 스크립트


CHAPTER 11. NL(Nested Loops) 조인

기본 메커니즘

실사례

Sanity Checks

요약

테스트 스크립트


CHAPTER 12. 해시 조인

시작하면서

Optimal 해시 조인

Onepass 해시 조인

Multipass 해시 조인

트레이스 파일

10104 이벤트

10053 이벤트

골칫거리

전통적인 비용계산법

새로운 비용계산법

비교 테스트

다중 테이블 해시 조인

요약

테스트 스크립트


CHAPTER 13. 정렬과 머지 조인

시작하면서

메모리 사용

CPU 사용

sort_area_retained_size

pga_aggregate_target

실제 I/O

정렬 비용

10053 트레이스

비교 테스트

머지 조인

머지 메커니즘

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

카테지안 머지 조인

집계

인덱스

집합 연산자

마지막 당부

요약

테스트 스크립트


CHAPTER 14. 10053 트레이스 파일

쿼리문

실행계획

환경

트레이스 파일

파라미터 설정값

쿼리 블록

통계 정보

단일 테이블

Sanity Checks

General Plans

Join order[1]

Join order[2]

Join order[3]

Join order[4]

Join order[5]

Join order[6]

Join order[7]

Join order[8]

Join order[9]

Join order[10]

Join order[11]

Join order[12]

Join order[13]

Join order[14]

Join order[15]

Join order[16]

Join order[17]

Join order[18]

조인 평가 요약

테스트 스크립트

APPENDIX A 업그레이드 시

dbms_stats

도수분포 히스토그램

CPU costing

반올림 오차

바인드 변수 Peeking

조인 컬럼에 NULL 값을 갖는 경우

B-tree에서 비트맵으로 전환

Index Skip-Scans

AND-Equal

인덱스 해시 조인

In-List 조건에 대한 비용계산의 개선

이행적 폐쇄

sysdate 계산식의 개선

구성 컬럼이 모두 NULL인 인덱스 엔트리 포함

pga_aggregate_target

정렬(Sorting)

그룹핑(Grouping)

Sanity Checks

조건식이 컬럼 한계 값을 벗어나는 경우

데이터 타입 조작

옵티마이저 모드

역순정렬 인덱스

Complex View Merging

Unnest 서브쿼리

스칼라 및 필터 서브쿼리

병렬 쿼리의 변화 x 2

동적 샘플링

임시 테이블

딕셔너리 통계정보


APPENDIX B 옵티마이저 파라미터


optimizer_features_enable 570


10053 트레이스 파일 572


v$sql_optimizer_env 577

인덱스 579

목차