목차
제1장 SQL의 활용
1. SQL과 옵티마이저 = 1-3
1.1 옵티마이져와 우리의 역할 = 1-5
1.2 옵티마이져의 최적화 절차 = 1-10
1.3 옵티마이져의 형태 = 1-19
1.3.1 규칙기준 옵티마이져 = 1-21
1.3.2 비용기준 옵티마이져 = 1-26
1.4 옵티마이져의 한계 = 1-31
1.5 개발자의 역할 = 1-35
2. SQL 활용의 다위성 = 1-38
2.1 SQL 수행 횟수의 차이 = 1-39
2.2 랜던 액세스 발생량의 차이 = 1-41
2.3 처리경로 최적화의 차이 = 1-44
2.4 클라이언트/서버 환경에서 SQL의 역할 = 1-46
2.5 처리경로 개선의 용이성 = 1-51
2.6 병렬처리에서 SQL의 역할 = 1-57
2.7 처리 과정의 파라미터 활용 = 1-60
2.8 단순성, 유지보수성, 생산성 = 1-63
3. SQL 활용도 향상 방법 = 1-67
3.1 DECODE 함수를 이용한 IF 처리 = 1-69
3.2 SUM(DECODE..)의 활용 = 1-77
3.2.1 SUM(DECODE..)의 기본형 = 1-78
3.2.2 SUM(DECODE..)의 확장 = 1-82
가. 전체 집합의 확장 = 1-82
나. 대분류의 확장 = 1-84
다. 중분류의 확장 = 1-85
라. 로우단위 처리의 확장 = 1-92
3.2.3 SUM(DECODE..) 사용시 주의사항 = 1-100
가. NULL 값의 처리 = 1-101
나. 반복 DECODE의 감소 = 1-104
다. SUM(DECODE..)와 GROUP BY 비교 = 1-114
라. COUNT(DECODE..)의 활용 = 1-120
마. GROUP BY 문에서 MIN의 활용 = 1-122
바. SQL을 어떻게 공부할 것인가? = 1-124
3.3 UPDATE 문의 활용 = 1-128
3.3.1 확장 UPDATE 문 = 1-129
3.3.2 수정가능 조인뷰(Modifiable Join View) = 1-142
가. 수정가능 조인뷰의 제한사항 = 1-143
나. 키보존(Key Preserved) 테이블이란? = 1-147
다. 수정가능 조인뷰의 활용 = 1-153
제2장 데이터 연결의 다양한 방법
1. 조인을 활용한 데이터 연결 = 2-3
1.1 카테시안(Cartesian)곱을 이용한 조인 = 2-13
1.1.1 나열된 컬럼을 여러 레코드로 생성 = 2-15
1.1.2 첨자 LOOP 형 처리 = 2-17
1.2 관계가 없는 테이블간의 조인 = 2-20
1.3 처리결과를 고정된 양식에 맞추는 조인 = 2-24
1.4 조인을 이용한 소계 처리 = 2-27
2. UNION, GROUP BY를 이용한 데이터 연결 = 2-31
2.1 개념 및 특징 = 2-32
2.2 양쪽 OUTER 조인의 해결 = 2-40
2.3 특이한 활용 사례 = 2-48
2.3.1 이종(異種)로우들의 고정양식 출력 = 2-48
2.3.2 전후(前後)간의 로우 비교 = 2-54
2.3.3 추출 컬럼의 특이한 가공 = 2-58
3. 저장형 함수를 이용한 데이터 연결 = 2-65
3.1 개념 및 특징 = 2-66
3.1.1 절차형 처리 = 2-68
3.1.2 독립적인 오브젝트 = 2-70
3.1.3 단일값을 리턴 = 2-72
3.1.4 로우단위별 실행 = 2-75
3.2 조인과의 비교 = 2-79
3.3 유형별 활용 = 2-80
3.3.1 1:M 조인을 1:1 조인으로 = 2-81
3.3.2 M:M 조인의 해결 = 2-89
3.3.3 부분범위처리로의 유도 = 2-93
가. M집합 체크 시의 부분범위 처리 = 2-94
나. 전체범위처리로 수행되는 필터처리 해결 = 2-98
다. 특정 부분만 부분 범위처리로 유도 = 2-99
3.3.4 배타적 논리합(Exclusive OR) 관계의 조인 = 2-104
4. 서브쿼리(Subquery)를 이용한 데이터 연결 = 2-112
4.1 개념 및 특징 = 2-113
4.1.1 먼저 수행하는 서브쿼리의 조인과의 차이 = 2-113
4.1.2 나중 수행하는 서브쿼리의 조인과의 차이 = 2-120
4.2 서브쿼리의 실행계획 = 2-124
4.2.1 서브쿼리의 실행 순서 = 2-127
4.2.2 SORT MERGE 형태의 수행 = 2-132
4.2.3 필터(Filter)형식으로 처리되는 경우 = 1-134
4.3 유형별 활용 = 2-138
4.3.1 M:M 관계 = 2-138
4.3.2 부정형(Anti) 조인 = 2-140
4.3.3 부분범위처리로의 유도 = 2-146
4.3.4 ANY, ALL을 활용한 서브쿼리 = 2-149
4.3.5 발생 데이터의 목록처리 = 2-152
4.3.6 액세스 효율화를 위한 서브쿼리 = 2-155
4.4 서브쿼리 활용시 주의사항 = 2-156
4.4.1 조인문에서 서브쿼리의 실행 순서 = 2-157
4.4.2 MIN, MAX 값을 가진 로우 액세스 = 2-160
제3장 인라인뷰의 활용
1. 단계적인 조인을 위한 활용 = 3-3
2. 순환(RECURSIVE)관계 전개시의 조인 = 3-8
3. 방사형 조인의 해결 = 3-13
3.1 방사형 조인의 문제점 = 3-14
3.2 인라인뷰를 이용한 해결 = 3-18
3.3 GROUP BY된 인라인뷰의 조인 문제점 = 3-20
3.4 GROUP BY된 인라인뷰의 MESTED LOOPS 조인 = 3-26
3.5 방사형 조인의 기타 해결방법 = 3-29
4. OUTER 조인시의 처리 = 3-32
4.1 OUTER 조인과 조인 실패의 원인 = 3-32
4.2 OUTER 조인 실패의 해결 = 3-34
4.3 OUTER 조인의 실행계획 3-38
4.4 하나 이상 집합과의 OUTER 조인 = 3-41
5. 실행계획의 제어 = 3-44
6. 부분범위처리로의 유도 = 3-51
7. 사용자지정 저장형 함수 사용시의 활용 = 3-58
8. SQL 기능확장을 위한 중간집합 생성 = 3-64
9. 상이한 집합의 통일 = 3-68
9.1 유사한 집합의 통일 = 3-69
9.2 UNION을 사용한 인라인뷰의 주의사항 = 3-74
10. 기타 특이한 형태의 활용사례 = 3-81
10.1 실행계획의 분리 = 3-81
10.2 배치 집계처리로 온라인 액세스 = 3-85
제4장 논리합 연산자의 액세스 효율화
1. 논리합(OR, IN)연산자의 이해 = 4-3
1.1 OR와 IN 의 비교 = 4-4
1.2 AND와 OR 연산자의 특성 = 4-6
1.3 논리합 연산자의 실행계획 = 4-8
1.4 OR 연산자 사용시 주의사항 = 4-13
1.4.1 실행계획 분할 방법 = 4-14
1.4.2 OR 연산자의 해고 = 4-18
1.4.3 데이터모델링 시의 유의사항 = 4-25
2. IN을 활용한 액세스 효율화 = 4-33
2.1 IN의 결합처리 실행계획 = 4-34
2.2 실행계획 개선의 유형 = 4-41
2.2.1 상수값을 이용한 IN 조건 추가 = 4-41
2.2.2 서브쿼리를 이용한 IN 조건 추가 = 4-45
가. 현존하는 테이블을 활용하는 방법 = 4-46
나. 모조(Dummy) 테이블을 활용하는 방법 = 4-48
다. ROWNUM을 활용하는 방법 = 4-52
라. 임의의 집합을 생성하는 방법 = 4-54
2.3 IN 조건에서의 상수와 변수의 차이 = 4-58
2.4 IN 조건 대상 컬럼의 선정 = 4-63
2.5 결합인덱스 컬럼 수에 따른 차이 = 4-67
2.6 동일한 실행계획의 처리범위 차이 = 4-70
3. 중복된 IN 조건의 활용 = 4-75
3.1 중복 사용된 상수값 IN 조건의 실행계획 = 4-76
3.2 서브쿼리를 포함한 중복 IN 조건의 실행계획 = 4-79
3.3 결합처리 실행계획이 불가능한 형태의 해결 = 4-83
3.4 IN 활용 시의 주의사항 = 4-87
3.4.1 IN 서브쿼리로 인한 메인쿼리의 중복 처리 = 4-87
3.4.2 공급자 역할을 못하는 서브쿼리의 해결 = 4-91
3.4.3 논리합 연산자에서 'STOP KEY'의 비효율 = 4-95
4. IN을 고려한 결합 인덱스의 선정 = 4-101
4.1 액세스 유형의 파악 = 4-102
4.2 인덱스 선정시의 IN 조건 활용 = 4-104