ORACLE SQL 실전튜닝 기본해법
일반적으로 책이란 눈으로 읽고, 머리로 이해하면 끝이라고 생각한다. 하지만 이런 생각 때문에 많은 문제가 발생한다. 왜냐하면 막상 튜닝 프로젝트에 사람을 투입하려고 하면, 적당한 사람이 없기 때문이다.

튜닝 책을 읽은 사람은 많은데, 튜닝 경험이 없거나 짧은 사람이 많다는 뜻이다. 튜닝 컨설턴트는 전문가이다. 튜닝 경험이 없는 사람을 명함만 파서 전문가라고 할 수는 없는 노릇이다.

이 책의 목적은 당신을 튜닝 경험자로 만드는 것이다. 따라서 머리로만 이해하는 다른 책들과는 달리, SQL 튜닝을 몸으로 경험하게 구성되어 되어있다.만일 튜닝 프로젝트 경험이 없는 당신이 한달 뒤에 튜닝 프로젝트에 투입된다면 가능한 빨리 이 책으로 경험을 시작해야 한다. 왜냐하면 장인에게 실력이란 경험 혹은 경력이기 때문이다.

1. 튜닝 도구
1.1 DBMS_XPLAN.DISPLAY_CURSOR    
1.2 DBMS_XPLAN.DISPLAY_AWR
1.3 SQL_MONITOR
 
2. 실행 계획 분석
2.1 실행 계획 순서 기본 분석법
2.1 실행 계획 순서 예외 사항 분석법
 
3. 튜닝 대상 SQL 추출 및 튜닝 방안
3.1 AWR 데이터를 이용한 TOP SQL 추출
3.2 현재 상태의 TOP SQL 추출
3.3 기타 튜닝 대상 SQL 추출 방법 소개
3.4 개발 환경에서의 튜닝
3.5 운영 환경에서의 튜닝
 
4. INDEX
4.1 B-TREE INDEX 구조
4.2 INDEX RANGE SCAN
4.3 INDEX RANGE SCAN DESCENDING
4.4 INDEX RANGE SCAN(MIN/MAX)
4.5 INDEX 컬럼 가공
4.6 CLUSTERING FACTOER
4.7 INDEX RANGE SCAN VS FULL TABLE SCAN
4.8 INDEX ACCESS 조건, FILTER 조건
4.9 INDEX SKIP SCAN
4.10 INDEX FULL SCAN
4.11 INDEX FULL SCAN(MIN/MAX)
4.12 INDEX FAST FULL SCAN
4.13 INDEX COMBINATION
4.14 INDEX JOIN
4.15 INDEX COMBINE과 INDEX JOIN의 차이점 비교
4.16 INDEX FILTERING 효과
 
 
5. JOIN
5.1 NESTED LOOP JOIN
5.2 HASH JOIN 
5.3 SORT MERGE JOIN
5.4 JPPD(Join Predicate Push Down)
5.5 조인 순서가 성능에 미치는 영향
 
6. 서브쿼리
6.1 FILTER 서브쿼리
6.2 EARLIER FILTER 서브쿼리
6.3 NL SEMI / ANTI JOIN
6.4 상관관계 서브쿼리(FILTER, NL SEMI 조인) 활용
6.5 HASH SEMI / ANTI JOIN
6.6 SORT MERGE SEMI / ANTI JOIN
6.7 스칼라 서브쿼리
6.8 비 상관관계 서브쿼리(제공자 서브쿼리)
 
7. 표준 PAGENATION
7.1 부분 범위 처리, 전체 범위 처리
7.2 표준 PAGENATION 사용 방법
7.3 표준 PAGENATION 사용 - 최적의 INDEX 존재
7.4 표준 PAGENATION 사용 - 최적의 인덱스 없음
7.5 표준 PAGENATION 사용 - 처리 순서
7.6 PAGING 처리 응용
7.7 웹 게시판 형태에서 PAGING 처리
 
8. 동일 데이터 반복 ACCESS 튜닝
8.1 서브쿼리 OR 인라인뷰를 통한 반복 ACCESS - 분석 함수 활용
8.2 UNION ALL 반복 ACCESS - SQL 통합
8.3 UNION ALL 반복 ACCESS - 카테시안 조인
8.4 UNION ALL 반복 ACCESS - 소계 처리 함수의 활용
8.5 UNION ALL 반복 ACCESS - WITH 문의 활용
8.6 UPDATE 문 서브쿼리 통한 반복 ACCESS - MERGE문 활용
8.7 MERGE 대상 테이블 반복 ACCESS
 
9. 실행계획 분리
9.1 CONCATENATION을 이용한 실행계획 분리
9.2 UNION ALL을 이용한 실행계획 분리

10. PGA 튜닝
10.1 SORT ORDER BY
10.2 SORT ORDER BY & SORT ORDER BY STEOPKEY (STOPKEY)
10.3 SORT GROUP BY & HASH GROUP BY
10.4 SORT UNIQUE & HASH UNIQUE
10.5 HASH JOIN, HASH SEMI JOIN & HASH ANTI JOIN  
10.6 SORT MERGE JOIN, MERGE SEMI JOIN & MERGE ANTI JOIN  
 
11. 기타 응용 튜닝
11.1 여러 행 → 한 개의 행, 열로 묶기  
11.2 한 개의 행, 열로 묶인 데이터 → 여러 행으로 분리   
11.3 행(ROW)간의 누적 곱  
11.4 카테시안 조인 응용 - 일, 주, 월 현황 
11.5 INDEX 조인 응용 
11.6 OUTLINE 정보를 이용한 튜닝 
 
12. 튜닝 실무 사례
12.1 관련단원 - .INDEX  
12.2 관련단원 - .INDEX  
12.3 관련단원 - .JOIN
12.4 관련단원 - .JOIN(JPPD)  
12.5 관련단원 - .서브쿼리 
12.6 관련단원 - .JOIN, .서브쿼리, .동일데이터 반복 ACCESS
12.7 관련단원 - .실행 계획 분리  
12.8 관련단원 - .JOIN, .실행 계획 분리   
12.9 관련단원 - .서브쿼리, .PGA튜닝
12.1 관련단원 - .JOIN, .서브쿼리, .PGA 튜닝   
12.1 관련단원 - .동일 데이터 반복 ACCESS 튜닝 
12.1 관련단원 - .INDEX, .표준 PAGENATION  
12.1 관련단원 - .표준 PAGENATION, .서브쿼리    ​