프린트 하기

 

서적 명 : 오라클 튜닝 에센셜

 

책소개

DB 튜닝의 이해를 넘어 체화를 위한 공격적인 시도
DB 튜닝을 이해하여 좋은 SQL을 짜고 싶은 개발자들을 위한 책이다. DB 튜닝 입문자를 위해 꼭 필요한 내용 위주로 간추려 그림으로 설명함으로써 공부 부담을 줄였다. 튜닝은 DBMS의 아키텍처 이해 등 방대한 학습이 필요한 영역이다. 하지만 대부분의 개발 프로젝트 현장에는 전담 DB 튜너가 없다. 이에 따라 개발자들이 경험을 토대로 튜닝을 한다. 이 책은 경험 단계를 뛰어넘어 튜닝을 제대로 이해하고 싶은 개발자를 위해 기획됐다. 이 책은 튜닝이라는 허들을 넘기 어려운 이유 세 가지를 염두에 두고 해결책 중심으로 구성됐다.

DB 튜닝 공부의 어려움 3가지와 해결책
① 알아야 할 내용이 많다 ▶ 필수 내용만 간추려 그림과 함께 설명
② 느린 SQL 문을 접하기 어렵다 ▶ 풍부한 실행계획 예제 제시
③ 실습 데이터 확보의 어려움 ▶ 5000만 건 이상의 실습용 데이터와 모델 제공

튜닝 경험이 없다면 시스템 속도를 저하시키는 ‘문제의 SQL문’을 접하더라도 실감하기가 쉽지 않다. 이런 독자를 위해 『오라클 튜닝 에센셜』은 직접 확인해볼 수 있도록 5000만 건 이상의 주문 테이블과 주문상품 테이블 데이터, 관련 데이터 모델을 제공한다. 책에 제시된 SQL문을 직접 적용·확인해 보고, 나만의 방법으로 고쳐보면서 공부할 수 있다.

 

목차

들어가는 글
이 책의 활용법

1장 실습 환경_
1.1. 생성 스크립트
1.2. 실습 데이터 모델
1.3. DBMS_XPLAN.DISPLAY_CURSOR

2장 오라클 아키텍처_
2.1. 근력 운동과 오라클 아키텍처가 닮은 점
2.2. 개요
2.3. 시작하기
2.4. 리두 로그 버퍼와 LGWR
2.5. DB 버퍼 캐시와 DBWR
2.6. Shared pool과 SQL 실행과정
2.6.1. 구문분석
2.6.2. 값 치환
2.6.3. 실행
2.6.4. 데이터 인출
2.7. SELECT 문장의 논리적 실행 순서
2.8. 데이터 저장 구조
2.8.1. 테이블스페이스
2.8.2. 세그먼트
2.8.3. 익스텐트
2.8.4. 블록
2.8.5. 정리

3장. I/O 효율화_
3.1. 인덱스 탐색 원리
3.2. 블록 단위 I/O
3.3. 시퀀스 액세스와 랜덤 액세스의 이해
3.4. 버퍼 피닝
3.5. 싱글 블록 I/O vs. 멀티 블록 I/O
3.6. I/O 효율화, 왜 중요한가?

4장 인덱스 기본 개념_
4.1. 인덱스의 특징
4.2. 오라클에서만 사용 가능한 ROWID
4.3. 인덱스 스캔 방식
4.3.1. Index Unique Scan
4.3.2. Index Range Scan
4.3.3. Index Full Scan
4.3.4. Index Skip Scan
4.3.5. 인덱스 스캔 유도 방법
4.3.6. Index Fast Full Scan
4.3.7. 기타 활용
4.4. 인덱스 스캔 동작 원리
4.4.1. 인덱스 컬럼 사용법
4.4.2. 묵시적 형변환

5장 인덱스 활용과 튜닝_
5.1. 인덱스로 테이블 액세스 최적화
5.1.1. 인덱스로 테이블 랜덤 액세스
5.1.2. 인덱스 손익 분기점
5.2. 인덱스 튜닝 사례
5.2.1. 인덱스 스캔에서 비효율 판단하기
5.2.2. 기존 인덱스에 컬럼 추가하기
5.2.3. PK 인덱스 확장하기
5.2.4. 인덱스에서만 처리하기
5.3. 인덱스 스캔 범위 계산
5.3.1. 조건절에 따른 인덱스 스캔 범위 파악
5.4. 인덱스 설계
5.4.1. 인덱스 설계 기준 및 전략

6장 조인_
6.1. NL 조인
6.2. 소트 머지 조인
6.3. 해시 조인
6.4. 조인 방식별 특성 비교
6.5. 조인 방식에 따라 달라지는 인덱스 설계
6.5.1. NL 조인
6.5.2. 소트 머지 조인
6.5.3. 해시 조인
6.6. Outer 조인
6.6.1. Outer NL 조인
6.6.2. Outer 소트 머지 조인
6.6.3. Outer 해시 조인
6.7. 스칼라 서브 쿼리로의 조인

7장 소트 튜닝_
7.1. 소트 연산의 종류
7.1.1. Order by(Sort Order by)
7.1.2. Group by(Sort Group by, Hash Group by)
7.1.3. Distinct, IN, UNION, MINUS, INTERSECT 등의 집합 연산자
7.1.4. Rank(), Dense_Rank(), Row_Number() 등 윈도우 함수(Window Sort)
7.1.5. Sort Aggregate 연산
7.2. 인덱스를 이용한 소트 대체
7.2.1. Sort Order by
7.2.2. Sort Group by
7.3. 불필요한 소트 제거
7.3.1. UNION, MINUS, INTERSECT 등 집합 연산자
7.3.2. IN절 안의 서브 쿼리
7.4. 피할 수 없는 소트! 소트 영역이라도 적게 사용하기
7.4.1. 소트 영역에 대한 이해
7.4.2. 첫 페이지를 빠르게 동작 시키는 페이징 기법

8장 파티셔닝_
8.1. 테이블 파티셔닝
8.1.1. Range 파티션
8.1.2. 리스트 파티션
8.1.3. 해시 파티션
8.1.4. 세 가지 파티션의 특징
8.1.5. 복합 파티셔닝
8.2. 인덱스 파티셔닝
8.3. 파티션 Pruning

9장 병렬처리_
9.1. 병렬도
9.2. 데이터 재분배
9.3. 인덱스 스캔 vs 테이블 풀 스캔 vs 병렬 수행
9.4. 병렬 해시 조인과 파티션 와이즈 조인
9.5. 병렬 NL 조인

나가는 글
감수의 글
추천의 글

 

[예스24 제공]

'ORACLE > Book' 카테고리의 다른 글

Optimizing Oracle Optimizer  (0) 2022.03.28
The Logical Optimizer  (2) 2022.03.19
국가공인 SQLP 자격검정 핵심노트 2  (0) 2021.09.02
국가공인 SQLP 자격검정 핵심노트 1  (0) 2021.09.02
국가공인 SQLD 자격검정 핵심노트  (0) 2020.12.28