티스토리 뷰

반응형
쿼리 튜닝과 관련해서 추천하고 싶은 책은 원래 "대용량 데이터베이스 솔루션 1, 2" 인데요.
2권을 구입하기에는 금전적으로 쉽지가 않죠.
회사에 다니시는 분들은 회사 비용으로 구매하시면 좋겠죠. ㅎㅎ
제가 읽은 책중에서 대용량 데이터베이스 책을 제외하고 가장 재밌있게 본책이 "오라클 실무 튜닝과 SQL 패턴 학습" 이란 책이어서 소개해 드려요. 실제 제가 하고 있는 업무에 책의 내용이 많이 반영이 되었구요.
성능도 만족할 만하게 개선이 되어서 자신있게 추천해 드립니다.

목차
PART 1 정석편

Chapter 1 Oracle Structure 1
1.1 SGA
1.1.1 SGA란 무엇인가?
1.1.2 Shared Pool
1.1.3 Data Buffer Cache
1.1.4 Redo Log Buffer

Chapter 2 Oracle Structure 2
2.1 Background Process
2.1.1 DBWR
2.1.2 LGWR
2.1.3 SMON
2.1.4 PMON
2.1.5 CKPT
2.1.6 RECO
2.1.7 LOCK
2.2 MTS
2.3 Parallel Processing
2.3.1 Parallel Processing이란 무엇인가?
2.3.2 Dynamic Parallel Processing
2.3.3 Static Parallel Processing
2.3.4 SQL Loadder의 병렬 처리
2.4 LOCK Mechanism
2.4.1 LOCK이란 무엇인가?
2.4.2 Row Level LOCK
2.4.3 Table Level LOCK

Chapter 3 About Index
3.1 Index Structure
3.1.1 Table Structure
3.1.2 Index Structure
3.2 B-Tree Index
3.2.1 B-Tree Index Structure
3.2.2 Index Skew
3.2.3 언제 사용해야 하는가?
3.3 Function Based Index
3.3.1 Function Based Index Structure
3.3.2 언제 사용해야 하는가?
3.4 Bitmap Index
3.4.1 Bitmap Index Structure
3.4.2 언제 사용해야 하는가?
3.5 Index Scan Method
3.5.1 Full Table Scan
3.5.2 Index Scan
3.5.3 Index Fast Full Scan
3.5.4 Index Skip Scan
3.6 Index 사용 시 유의사항
3.6.1 Suppressing의 주의
3.6.2 Not Operator의 정확한 사용법
3.6.3 Null Data의 의미와 성능 개선의 사용법
3.7 Index 설정 및 추가 시 유의사항
3.7.1 기존 혹은 새로 추가된 인덱스가 미치는 영향과 고려사항

Chapter 4 전체 범위 처리와 부분 범위 처리
4.1 전체 범위 처리와 부분 범위 처리
4.1.1 전체 범위 처리란 무엇인가?
4.1.2 부분 범위 처리란 무엇인가?
4.2 전체 범위 처리의 부분 범위 처리로의 전환
4.3 언제, 어떤 처리 방식을 사용해야 하는가?

Chapter 5 Join & View
5.1 Nested Loop Join
5.1.1 Nested Loop Join이란 무엇인가?
5.1.2 Nested Loop Join의 효율적인 사용법 및 주의사항
5.2 Sort Merge Join
5.2.1 Sort Merge Join이란 무엇인가?
5.2.2 Sort Merge Join의 효율적인 사용법 및 주의사항
5.3 Hash Join
5.3.1 Hash Join이란 무엇인가?
5.3.2 Hash Join의 효율적인 사용법 및 주의사항
5.4 Outer Join
5.4.1 Outer Join이란 무엇인가?
5.4.2 Outer Join의 오류 사례와 전략적 사용법
5.5 View
5.5.1 View란 무엇인가?
5.5.2 View를 이용한 성능 개선 사례

Chapter 6 Sub Query
6.1 Sub Query
6.1.1 Sub Query란 무엇인가?
6.1.2 주종 관계를 가지는 Sub Query
6.1.3 주종 관계를 갖지 않는 Sub Query
6.1.4 주종 관계로의 수행을 위한 방법과 성능 개선 사례

Chapter 7 순환 관계의 처리
7.1 순환 관계의 처리
7.1.1 순환 관계 처리란 무엇인가?
7.1.2 순환 관계를 써야 하는 이유?
7.1.3 잘못 사용되고 있는 순환 관계의 사례

Chapter 8 SQL Plan & Trace
8.1 SQL Plan
8.1.1 SQL Plan이란 무엇인가?
8.1.2 SQL Plan의 식별 방법
8.2 Trace 239
8.2.1 Trace란 무엇인가?
8.2.2 Trace 결과의 식별 방법
8.2.3 Trace의 실제 사례를 통한 전체 작업량에 대한 분석과 문제점 돌출 방법

Chapter 9 Cluster
9.1 Cluster
9.1.1 Cluster란 무엇인가?
9.1.2 Cluster가 가지는 장점과 단점

Chapter 10 Optimizer & Hint
10.1 Optimize
10.1.1 Optimizer란 무엇인가?
10.1.2 Rule Base & Cost Base Optimizer의 특징 및구조가 가지는 특성의 이해
10.2 Hint
10.2.1 Hint란 무엇인가?
10.2.2 실무 사례로 알아보는 Hint의 적절한 사용법

Chapter 11 Analytic Function
11.1 Analytic Function
11.1.1 Analytic Function이란 무엇인가?
11.1.2 실무 사례로 알아보는 Analytic Function의 종류와 사용법

Chapter 12 Rollup & Cube
12.1 Rollup
12.1.1 Rollup이란 무엇인가?
12.1.2 실무 사례로 알아보는 Rollup의 적절한 사용법
12.2 Cube
12.2.1 Cube란 무엇인가?
12.2.2 실무 사례로 알아보는 Cube의 적절한 사용법

Chapter 13 Pro*C
13.1 Pro*C란?
13.2 Pro*C 프로그래밍을 하기 위한 기본 환경
13.2.1 Window 환경에서의 Pro*C 사용법
13.2.2 Unix 환경에서의 Pro*C 사용법
13.3 Pro*C 프로그램의 구조
13.4 단일 데이터 추출을 통한 갱신 프로그램 작성
13.5 배열을 이용한 데이터 추출과 갱신 프로그램 작성
13.6 WEB 프로그램에서의 Pro*C 응용

PART 2 응용편

Chapter 14 실무 사례

14.1 Literal SQL의 Static SQL 프로그램으로의 전환
14.2 상품별․분류별 판매 내역을 추출하라
14.3 일정 기간별 판매 내역과 그에 대한 누적분을 추출하라
14.4 한 테이블의 값을 가로 2개의 컬럼으로 분리하여 추출하라
14.5 분류별․상품별 판매 내역과 전일 대비 증감분을 추출하라
14.6 한 테이블의 값을 가로 N개의 컬럼으로 분리하여 추출하라
14.7 사원의 급여별로 순위를 부여하여 추출하라
14.8 사원의 일자별 판매 내역과 최근 일주일간의 판매 내역을 누적하여 추출하라
14.9 언제 어떤 패턴의 SQL을 작성하는가?

Chapter 15 실무 프로젝트
15.1 [금융] 원리금 구하기
15.1.1 업무 요건
15.1.2 데이터베이스 설계
15.1.3 원리금 구하기 [SQL 작성]
15.2 [유통] 배차 지정하기
15.2.1 업무 요건
15.2.2 데이터베이스 설계
15.2.3 배달 기사 지정하기 [SQL 작성]
15.2.4 배차 지정하기 [SQL 작성]
15.2.5 배달 고객 N건별 부분 범위 조회 [SQL 작성]
15.3 [통신] 통신 요금 계산하기
15.3.1 업무 요건
15.3.2 데이터베이스 설계
15.3.3 당월 청구 금액 정산하기 [SQL 작성]
15.3.4 당월 청구, 입금 내역 정산하기 [SQL 작성]
15.4 [건설] 노무비 구하기
15.4.1 업무 요건
15.4.2 데이터베이스 설계
15.4.3 당월, 현장별, 일별 노무비 조회 [SQL 작성]

[이미지 및 목차 출처] 강컴
반응형