이미 소장하고 있다면 판매해 보세요.
|
제 1 장 CBO Concept
제 1 장은 다음과 같은 내용들을 통해 CBO의 기본 개념을 익히도록 도와드립니다. Cost란 무엇인가? Time Model vs. IO Model CBO의 기본 흐름 다음과 같은 예제들로 구성되어 있습니다. 01. cpu_cost_basic.sql 02. cbo_basic_terms.sql 제 2 장 CBO Tools 제 2 장은 다음과 같은 내용들을 통해 CBO를 자유롭게 활용하기 위한 다양한 Tool들을 소개합니다. DBMS_XPLAN Package 10046 Event 10053 Event 다음과 같은 예제들로 구성되어 있습니다. 01. dbms_xplan.display.sql 02. dbms_xplan.display_cursor.sql 03. simple_rownum_10053.sql 제 3 장 Index 제 3 장은 다음과 같은 내용들을 통해 Index가 CBO에서 갖는 의미와 성능 이슈를 소개합니다. Index Scan Cost Clustering Factor Index Cost 제어하기 Index Access Pattern Index Range Scan Index Full Scan Index Fast Full Scan Index Skip Scan B*Tree Index Combination Index Join 다음과 같은 예제들로 구성되어 있습니다. 01. clustering_factor.sql 02. manual_clustering_factor.sql 03. optimizer_index_caching_index_cost_adj.sql 04. index_range_scan.sql 05. index_full_scan.sql 06. index_fast_full_scan.sql 07. index_skip_scan.sql 08. btree_combination.sql 제 4 장 Transformation 제 4 장은 다음과 같은 내용들을 통해 Query Transformation의 개념 및 성능 이슈를 소개합니다. Transformation의 의미 Subquery Unnesting View Merging Predicate Pushing Star Transformation Cost Based Query Transformation Transformation Troubleshooting 하기 다음과 같은 예제들로 구성되어 있습니다. 01. subquery_transformation.sql 02. view_transformation.sql 03. star_transformation.sql 04. cost_based_query_transformation.sql 05. simple_rownum_10053.sql 제 5 장 Cardinality 제 5 장은 다음과 같은 내용들을 통해 Cardinality의 의미와 중요성 및 성능 이슈들을 소개합니다. Cardinality가 왜 중요한가? Cardinality의 기본 개념 기본 법칙들 골치 아픈 Case들 Skewed Data Correlated Columns Join Cardinality Partition Key Cardinality 제어하기 다음과 같은 예제들로 구성되어 있습니다. 01. cardinalities.sql 02. cardinality_vs_opt_estimate.sql 03. tuning_by_cardinality_feedback.sql 04. dynamic_sampling.sql 제 6 장 Histogram 제 6 장은 다음과 같은 내용들을 통해 Histogram의 개념과 성능 이슈들을 소개합니다. Histogram 기본 개념 Histogram 수집 Histogram과 Cardinality의 관계 Frequency Histogram Height-Balanced Histogram Histogram을 둘러싼 오해 다음과 같은 예제들로 구성되어 있습니다. 01. gather_histogram.sql 02. histogram_and_cardinality.sql 제 7 장 Advanced Techniques 제 7 장은 다음과 같은 내용들을 통해 Optimizer와 관련된 다양한 고급 기법들을 소개합니다. Forgotten Hints 통계 정보 관리 Manual Histogram Stored Outline 바꿔치기 SQL Profile Import 다음과 같은 예제들로 구성되어 있습니다. 01. forgotten_hints.sql 02. full_hint_concatenation.sql 03. oracle_never_ignores_hint.sql 04. diff_restore_table_stats.sql 05. histogram_manual_setting.sql 06. stored_outlines_vs_sql_profile.sql |
|
Oracle Wait Interface(OWI)라는 이름으로 필자를 기억하고 있는 사람들은 다음과 같은 질문을 하고 싶을 것이다.
왜 CBO 인가? 이에 대한 대답을 서문에 싣는 것이 예의라고 생각된다. 첫째, CBO 는 Oracle 성능의 핵심 중 핵심이기 때문이다. Oracle 의 시작과 끝이다. Oracle에 대한 공부는 CBO 로 시작해서 CBO 로 끝나기 마련이다. Oracle Performance Storyteller 를 꿈꾸는 필자로서는 CBO 는 피할 수 없는 주제인 셈이고, Oracle 성능 문제를 이해하고자 하는 모든 관련자들에게는 필수적인 지식인 셈이다. 둘째, 분위기가 무르익었기 때문이다. Jonathan Lewis 에 의해 [Cost-Based Oracle Fundamentals]가 출간되었고, 국내에는 [비용 기반의 오라클 원리]라는 제목으로 번역 출간되었다. 이제 국내에서도 CBO 에 대한 과학적인 접근과 논의가 가능해진 것이다. 몇 가지 마법 같은 테크닉을 소개하는 것이 아니라 Oracle 의 CBO 관점에서 체계적이고 객관적인 접근 이 가능해진 것이다. 셋째, 필자의 전작인 OWI 시리즈와의 균형 때문이다. 필자는 이미 2 권의 책을 통해 Oracle Wait Interface 에 대한 상세한 소개를 한 바 있다. 앞선 책들이 Oracle 시스템 전반에 대한 성능 진단과 분석을 위한 것이라면 이번 책은 CBO 튜닝이라는 Query 레벨, Application 레벨에서의 성능 진단과 분석을 위한 것이다. 독자들이 이 책을 읽고 이 세 가지 목적 중 단 한가지라도 제대로 달성되었다고 느낀다면 성공이라고 생각한다. 부족한 점이 있다면 필자의 잘못이다. 이 책의 목차를 본 분들이라면 또 한가지 중요한 의문점을 가질 것이다. 왜 CBO 를 설명하는 책에 Join 에 대한 상세한 설명이 없는가? 이유는 단 한가지이다. Jonathan Lewis 의 [Cost-Based Oracle Fundamentals]에 이미 잘 설명되어 있기 때문이다. 그보다 더 좋은 내용을 약속할 수 없기 때문에 과감하게 제외시켰다. 그 책과의 중복을 최대한 피하면서(하지만 그 영향을 벗어나기는 힘들다), 그 책에서 다루지 않은 다른 중요한 주제들을 최대한 다루었다. 이 책이 나오는 데는 많은 분들의 도움이 있었다. 엑셈의 모든 엔지니어들이 나에게는 경쟁자이자 협력자이다. 필자에게 비상식적으로 충분한 시간과 공간을 제공한 조 종암 사장님은 영원한 협력자이다. 이러한 도움이 없었다면 필자의 책들은 빛을 보지 못했을 것이다. 필자의 블로그(ukja.tistory.com)에서 의견을 교환해 주신 모든 분들 또한 보이지 않은 도움을 제공했다. 아마 그 공로로 따진다면 OTN Forum(forums.oracle.com)에서 필자와 의견을 교환한 모든 국내외의 엔지니어들의 도움이 가장 컸다고 할 수 있을 것이다. 이런 활발한 사용자 커뮤니티는 Oracle 을 받치는 거대한 힘들 중 하나이다. 마지막으로 이번에도 예외 없이 사랑하는 아내에게 이 책을 바친다. 인간 관계가 썩 좋다고 할 수 없는 나로서는(사실 통상적인 관점에서 보면 실패한 대인 관계라고 할 만하다) 그녀가 없는 인생은 생각할 수 없을 따름이다. 2008 년 12 월 1 일 조용한 마을 용상골에서 조 동 욱 --- 저자의 글 중에서 |
|
도서내용
Optimizing Oracle Optimizer는 모든 Oracle DBA, 개발자, 그리고 성능 관리자를 위한 축복과도 같은 책입니다. CBO와 Query를 최적화하는 새롭고 체계적인 시각을 소개합니다. 이론적인 설명에 그치지 않고 재현 가능한 많은 수의 데모를 통해 실용적인 지식 습득이 가능하도록 도와드립니다. Optimizing Oracle Optimizer는 다음과 같은 내용에 중점을 두고 있습니다. CBO의 기본 개념 및 핵심 용어들 CBO를 자유롭게 사용하기 위한 핵심적인 Tool들 CBO가 최적의 실행 계획을 수립하지 못하는 이유들 CBO의 오류를 보완하는 핵심적인 기법들 모든 주제는 명확한 개념 설명과 함께 다양한 예제를 통해 이해를 돕습니다. Oracle 성능 문제에 경험이 많은 분들 뿐만 아니라 CBO를 처음 접하는 분들도 쉽게 이해할 수 있도록 구성되었습니다. - 본서의 모든 예제는 https://exem-academy.com/wp-content/uploads/2022/09/Optimizing_Oracle_Optimizer.zip에서 다운받을수 있습니다. |