프린트 하기


서적 명 : 

오라클 성능 고도화 원리와 해법. 2



책소개

『오라클 성능 고도화 원리와 해법. 2』은 데이터베이스 튜닝과 관련된 핵심 주제를 중심으로, 실전에서 자주 접하는 주요 성능 이슈에 대한 원리와 해법을 친절하고 상세하게 설명한다.


[인터넷 교보문고 제공]



목차

목차

1장. 인덱스 원리와 활용 

1. 인덱스 구조 

2. 인덱스 기본 원리 

3. 다양한 인덱스 스캔 방식 

4. 테이블 Random 액세스 부하 

5. 테이블 Random 액세스 최소화 튜닝 

6. IOT, 클러스터 테이블 활용 

7. 인덱스 스캔 효율 

8. 인덱스 설계 

9. 비트맵 인덱스 


2장. 조인 원리와 활용 

1. Nested Loops 조인 

2. 소트 머지 조인 

3. 해시 조인 

4. 조인 순서의 중요성 

5. Outer 조인 

6. 스칼라 서브쿼리를 이용한 조인 

7. 조인을 내포한 DML 튜닝 

8. 고급 조인 테크닉 


3장. 옵티마이저 원리 

1. 옵티마이저 

2. 옵티마이저 행동에 영향을 미치는 요소 

3. 옵티마이저의 한계 

4. 통계정보 Ⅰ 

5. 카디널리티 

6. 히스토그램 

7. 비용 

8. 통계정보 Ⅱ 


4장. 쿼리 변환 

1. 쿼리 변환이란? 

2. 서브쿼리 Unnesting 

3. 뷰 Merging 

4. 조건절 Pushing 

5. 조건절 이행 

6. 조인 제거 

7. OR-Expansion 

8. 공통 표현식 제거 

9. Outer 조인을 Inner 조인으로 변환 

10. 실체화 뷰 쿼리로 재작성 

11. 집합 연산을 조인으로 변환 

12. 기타 쿼리 변환 


5장. 소트 튜닝 

1. 소트 수행 원리 

2. 소트를 발생시키는 오퍼레이션 

3. 데이터 모델 측면에서의 검토 

4. 소트가 발생하지 않도록 SQL 작성 

5. 인덱스를 이용한 소트 연산 대체 

6. Sort Area를 적게 사용하도록 SQL 작성 

7. Sort Area 크기 조정 


6장. 파티셔닝 

1. 테이블 파티셔닝 

2. 파티션 Pruning 

3. 인덱스 파티셔닝 


7장. 병렬 처리 

1. 기본 개념 

2. 병렬 Order By와 Group By 

3. 병렬 조인 

4. PQ_DISTRIBUTE 힌트 

5. 병렬 처리에 관한 기타 상식

출판사 서평

"고성능 데이터베이스 애플리케이션 구축을 위해 필수적으로 이해하고 적용해야 할 원리와 해법" 

데이터베이스 튜닝과 관련된 핵심 주제를 중심으로, 실전에서 자주 접하는 주요 성능 이슈에 대한 원리와 해법을 친절하고 상세하게 설명합니다. 1권에서 다룬 DBMS 내부수행 원리를 바탕으로 2권에서 다루는 내용은 다음과 같습니다. 

1장. 인덱스 원리와 활용 

2장. 조인 원리와 활용 

3장. 옵티마이저 원리 

4장. 쿼리 변환 

5장. 소트 튜닝 

6장. 파티셔닝 

7장. 병렬 처리 


데이터베이스 전문가로서 탄탄한 지식의 탑을 쌓으려면 핵심 기술에 대한 이해가 필수입니다. 데이터베이스 핵심 기술을 다지고 고급 기술을 연마하고자 하는 모든 분께 이 책은 든든한 반석과 나침반이 돼 드릴 것입니다. 특히, 아래와 같은 분께 자신 있게 권합니다. 

- 고급 데이터베이스 프로그래머 

- 데이터베이스 튜닝에 입문하고자 하는 개발자 및 DBA 

- 이미 활동 중인 데이터베이스 성능 관리자 

- 데이터베이스 설계자 

- 애플리케이션 구조 및 공통 기술 설계자 


저자 서문 

얼마 전 마라토너 이봉주 선수가 공식 은퇴하는 자리에서 "힘들고 무거운 짐을 내려놓은 것 같다"는 심경을 토로했다. 늘 듣던 상투적인 표현이지만 필자의 마음을 정확히 대변하는 듯해 남 얘기처럼 들리지가 않았다. 1권과 2권을 집중적으로 쓴 기간은 8개월 정도에 불과하지만 책을 처음 쓰기 시작한 게 2004년 8월경이었으니 5년이 넘은 셈이다. 그 무거운 짐을 이제 내려놓는다. 

이미 상당한 분량을 써 놓은 상태에서 바쁜 프로젝트 일정 때문에 손을 놓고는 5년이란 시간을 흘려보내고 말았다. 2009년 1월을 시작하면서, 이제 더는 늦출 수 없다는 비장한 각오로 펜을 다시 들었다. 그동안 오라클 10g를 거쳐 이미 11g가 출시된 상황이니 9i 기준으로 써 놓은 예전 원고들은 대부분 폐기할 수밖에 없었다. 하지만 지난 5년간 프로젝트와 개인적인 연구활동을 통해 축적된 자료들이 넘쳐나, 오히려 책이 너무 두꺼워지지 않도록 조절하기가 더 어려웠다. 

1권에선 밝히지 않았지만 원래 필자가 구상했던 책 제목은 ‘오라클 애플리케이션 튜닝’이었으며, 동 제목의 교재를 가지고 이미 여러 프로젝트에서 강의를 진행한 바 있다. 독자들에게 어필할 만한 이름을 찾다 보니 ‘오라클 성능 고도화 원리와 해법’으로 정하긴 했지만, 필자는 데이터베이스 성능 튜닝의 핵심 요소로서 애플리케이션 튜닝의 중요성을 강조하고 싶었다. 1권의 핵심 내용은 아래 4, 5, 6장이라고 서문에서 밝혔다. 

4장. 라이브러리 캐시 최적화 

5장. 데이터베이스 Call 최소화 

6장. I/O 효율화 원리 


1권의 독자라면 위 세 가지 요소 모두 애플리케이션 관점에서 해법을 찾아야 함을 느꼈을 것이다. 6장 I/O 효율화 원리의 세부 내용을 다룬 2권도 애플리케이션 측면의 주요 성능 이슈를 다루며, 구성은 다음과 같다. 

1장. 인덱스 원리와 활용 

2장. 조인 원리와 활용 

3장. 옵티마이저 원리 

4장. 쿼리 변환 

5장. 소트 튜닝 

6장. 파티셔닝 

7장. 병렬 처리 


이들 내용은 DB 관리자도 관심을 두는 주제이긴 하지만 SQL 튜닝 주체는 기본적으로 개발자이기 때문에 애플리케이션 성능 이슈라는 것이다. 

원래 계획은 2권 맨 마지막 장에 페이지 처리 등을 포함해 실전에서 얻은 활용 중심의 고급 테크닉과 팁을 담으려 했으나 책이 너무 두꺼워져 다음으로 미루게 되었다. 또한 고급 SQL 활용 중심의 서적을 먼저 집필할까도 고심했었지만 고기 잡는 법, 즉 기본 원리를 먼저 전파하는 게 순서라고 결론지었다. 원리가 바탕이 된다면 스스로 문제점을 파악하고 해법을 찾는 일은 거저 되는 일 아니겠는가. 

‘활용 중심’의 고급 SQL 튜닝 기법은, 언제라고 기약할 순 없지만 ‘오라클 성능 고도화 원리와 해법 Ⅲ’, 아니면 또 다른 제목의 튜닝 서적을 통해 소개해야 할 것 같다. 하지만 원리 중심의 1권과 2권에도 이미 그런 내용을 충분히 담고 있어 아쉽다고 느끼지는 않을 것이다. 


본서는 아래 독자층을 대상으로 한다. 


1. 고급 데이터베이스 프로그래머 

2. 데이터베이스 튜닝에 입문하고자 하는 개발자 및 DBA 

3. 이미 활동 중인 데이터베이스 튜닝 전문가 

4. 데이터베이스 설계자 

5. 애플리케이션 구조 및 공통 기술 설계자 


본서는 그리고 9i와 11g를 포함하면서 10g를 중심으로 설명한다. 10g 중심이지만 대부분 11g에도 적용되는 내용이고, 이해를 돕기 위해 9i와 비교하는 내용도 심심찮게 볼 수 있다. (스크립트에 버전을 표시하지 않은 것은 모두 10g에서 테스트한 것임을 밝힌다.) 


1권을 읽고 여러 경로를 통해 호평해 준 독자들께 감사의 마음을 전한다. 그분들의 응원이 2권을 끝까지 집필하는 데 적잖은 위로가 되었다. 

프로젝트가 생기면 내일이라도 당장 출정해야 하는 압박감에 시달렸지만 지난 1년간 짧은 몇몇 프로젝트 외에는 집필에만 전념할 수 있도록 배려해 준 조광원 사장님과 김형태 부사장님, 그리고 장현호, 한종식 상무님께 감사의 마음을 전한다. 격려와 함께 늘 바람막이가 돼 준 강대웅, 김문영 이사님께도 무한 감사의 마음을 전한다. 

최종 교정을 함께 도와준 손진영, 김창배, 김익서 후배 컨설턴트, 그리고 1권에서와 마찬가지로 전 장에 걸쳐 세심하게 검토해 준 정재우 수석 컨설턴트와 오픈베이스의 박원배 책임께 특별한 감사의 뜻을 표한다. 

무엇보다, 지난 일 년 동안 놀이공원에도 한번 데려가 주지 못한 두 딸에게 미안한 마음을 전한다. 토요일과 일요일에도 늘 컴퓨터 앞에만 앉아 있던 아빠의 모습을 이젠 당연하게 여기는 듯하다. 아내에게도 미안하고, 늘 기도해 주신 부모님께도 감사의 마음을 전한다. 마지막으로, 끝까지 건강 잃지 않도록 붙잡아주신 하나님께 감사드린다. 


2009년 12월 31일 조시형