간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (33,350원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (24,570원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (28,080원)
(최대할인 4만원 / 2만원 이상 결제)
Close

THE LOGICAL OPTIMIZER : 성능 향상을 위한 트랜스포머의 SQL 재작성 전략[양장]

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 79
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

39,000원

  • 35,100 (10%할인)

    390P (1%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    •  당일배송을 원하실 경우 주문시 당일배송을 선택해주세요.
    • 서울시 강남구 삼성로 512변경
    • 배송지연보상 안내
    • 무료배송
    • 해외배송가능
    주문수량
    감소 증가

    출판사 서평

    Logical Optimizer는 성능 향상의 목적으로 SQL을 재작성(변경)합니다. 하지만 옵티마이져가 완벽하지 못하므로 많은 경우에 성능저하를 일으키게 됩니다. 옵티마이져가 SQL을 직접 변경 함으로써 SQL의 성능에 미치는 영향은 지대하지만 전세계적으로 이것을 전반적으로 다룬 서적이 없다는 점과 Logical Optimizer의 한계로 인해 발생하는 성능 문제를 해결하기 위해 본서가 출간되었습니다.

    아래와 같은 경험이 있는 분들에게 추천 합니다.

    -조인 방법과 조인 순서가 올바르지 못하다.
    -인덱스를 사용하지 않는다.
    -힌트를 사용하였지만 의도대로 되지 않는다.
    -실행계획의 모습이 이상하다.
    -성능이 저하되는 원인을 찾기 힘들다.
    이러한 모든 의문점 뒤엔 Logical Optimizer라는 비밀의 벽이 있습니다. 그 벽을 넘는 순간 위에서 언급된 문제들을 해결할 수 있는 능력을 갖추게 됨은 물론이고 SQL을 보는 눈이 달라질 것입니다. 마치 SF 영화 <매트릭스>의 위대한 예언자인 Oracle의 눈처럼.
    (본문 내용 중에서)

    본문의 내용을 익히면 다음과 같은 능력을 가지게 될 것입니다.

    이 책을 통하여 얻을 수 있는 것

    1. 성능향상을 위한 SQL 수정을 튜너가 아닌 옵티마이져에게 시키는 방법
    2. 변경된 실행계획을 정확히 읽어내는 능력
    3. SQL과 Plan만 보고 옵티마이져가 SQL을 어떻게 변경시켰는지 알 수 있는 능력
    4. 튜닝에 실패했던 SQL을 튜닝할 수 있는 능력
    궁극적으로는 옵티마이져를 자유자재로 Control 할 수 있는 능력

    이 책의 난이도는 중급 및 고급입니다. 따라서 다음과 같은 분들에게 일독을 권합니다.

    이 책을 읽어야 할 사람

    1. 오라클을 사용하는 DBA, 중급 및 고급 개발자, DBMS의 성능에 관심이 있는 모델러나 설계자, 튜너, DBMS 컨설턴트, Data Architect
    2. Oracle 이외의 DBMS를 사용하는 DBA라면 Oracle의 SQL Transformation 기능과 타 DBMS의 SQL Transformation 기능을 비교해볼 수 있는 기회가 될 것입니다.

    목차

    Episode
    Prologue
    감사의 글
    누구를 위한 책인가
    책을 효율적으로 마스터하는 방법
    책의 구성

    Part 1 - Query Transformation Concept

    들어가기
    1.1 Logical Optimizer(Transformer)란 무엇인가
    1.2 Query Transformation을 알아야 하는 이유
    1.3 Query Transformation의 개념
    1.4 Query Transformer의 구조
    1.5 DBMS_XPLAN.DISPLAY_CURSOR
    1.6 내가 사용한 Hint가 무시되는 이유
    1.7 10053 Event Trace

    Part 2 - Heuristic Query Transformation

    들어가기
    2.A Heuristic Query Transformation이란?
    2.1 CSE (Common Subexpression Elimination): Where 절에서 or 사용시 중첩된 조건절은 제거하라
    2.2 JE(Join Elimination) : 직접 사용하지 않는 테이블은 SQL에서 삭제하라
    2.3 OE (Outer Join Table Elimination) : 불필요한 Outer쪽 테이블은 삭제하라
    2.4 OJE(Outer-Join Elimination) : 의미 없는 Outer 조인을 Inner 조인으로 바꾸어라
    2.5 OBYE(Order By Elimination) : 불필요한 Order By를 삭제하라
    2.6 DE (Distinct Elimination) : 불필요한 Distinct를 제거하라
    2.7 CNT(Count(column) To Count(*)):Count(컬럼) 사용시 해당 컬럼이 Not Null인 경우 Count(*)로 대체하라
    2.8 FPD (Filter Push Down) : 조건절을 인라인뷰 내부로 이동시켜라
    2.9 TP* (Transitive Predicate) : 조인절을 이용하여 다른 테이블에 상수조건을 생성시켜라
    2.10 SVM (Simple View Merging) : Simple View를 해체하여 메인 쿼리와 통합하라
    2.11 LV*(Lateral View) : 뷰를 Scalar 서브쿼리처럼 사용하라
    2.12 FOJC* (Full Outer Join Conversion) : Full Outer 조인을 Union All로 변경하라
    2.13 NFOJ* (Native Full Outer Join) : Full Outer 조인시 중복 Scan되는 테이블을 제거하라
    2.14 OT* (Operator Transformation) : 특정 연산자를 다른 연산자로 변환하라
    2.15 PM(Predicate Move Around): Where 조건을 다른 뷰에 이동시켜라
    2.16 WCOTR* (Where Current Of To Rowid) : Where Current Of 를 사용하여 Index Scan을 회피하라


    Heuristic Query Transformation for Subquery

    2.17 SSU(Simple Subquery Unnesting) : 단순 서브쿼리를 조인으로 바꾸어라
    2.18 CRSW (Correlated Removal Subquery Using Window Function): 상관 서브쿼리를 사용할 때 분석함수를 사용할 수 있는 경우 서브쿼리를 제거하라
    2.19 URSW (Uncorrelated Removal Subquery Using Window Function): 분석함수를 사용할 수 있는 경우 비상관 서브쿼리를 제거하라
    2.20 SJ (Semi Join) : 서브쿼리를 Semi 조인으로 변환하라
    2.21 AJ (Anti Join) : 부정형 서브쿼리를 Anti 조인으로 바꾸어라
    2.22 ANTI NA(Anti Join Null Aware) : Null 허용 컬럼으로 서브쿼리와 조인시 Anti 조인이 가능하다
    2.23 OJTAJ*(Outer Join to Anti Join) : Outer 조인을 Anti 조인으로 변환하라
    2.24 EJE*(Enhanced JE): Semi / Anti 조인과 ANSI Style로 조인 할 경우도 JE가 가능하다
    2.25 JESJ*(Join Elimination Using Self Join): Self Join 사용시에도 JE가 가능하다
    2.26 SSTS*(Scalar Subquery To Subquery): 스칼라 서브쿼리를 서브쿼리로 변환하라
    2.27 SQC (Subquery Coalescing): 불필요하게 분리되어 있는 서브쿼리를 하나로 통합하라
    2.28 DSJ (Driving Semi Join): Semi Join을 Bitmap 인덱스를 이용하여 Driving 테이블로 바꾸어라
    2.29 SJR*, AJR*(Hash Join Right Semi/Anti) : Hash Semi/Anti Join 시 사용되는 서브쿼리 집합을 Build Input 집합으로 변환하라


    Heuristic Query Transformation for Data Warehouse

    2.30 PC* (Pivot Conversion) : Pivot 절을 Case + Group By로 변환하라
    2.31 GBEP* (Group By Extension Pruning) : 불필요한 Rollup 이나 CUBE를 삭제하라
    2.32 GSTT* (Grouping Sets Using Temp Table): Grouping Sets 사용시 Temp 테이블에 적재후 이를 반복해서 이용하라
    2.33 GSTU* (Grouping Sets To UNION): Grouping Sets를 UNION ALL로 변환하라
    2.34 GSTR*(Grouping Sets To Rollup): Grouping Sets을 Rollup으로 변환하라
    2.B Part 2를 마무리 하며

    Part 3 - Cost Based Query Transformation

    들어가기
    3.A Cost Based Query Transformation이란 무엇인가
    3.B Search Type과 Iteration이란 무엇인가
    3.1 CBPPD*(Cost Based Predicate Push Down) : Complex View에 Filter를 밀어 넣어라
    3.2 PPU(Predicate Pull Up) : 비용이 많이 드는 조건절을 뷰 외부로 이동시켜라
    3.3 OR-Expansion(OR To Union All Conversion) : OR 조건을 이용하여Union All로 변경시켜라
    3.4 OR-Expansion Using Function*(NVL, DECODE, RANK To Union All): NVL, DECODE, RANK 함수를 사용한 조건절을 이용하여 Union All로 변경하라
    3.5 TE (Table Expansion): 여러 개의 파티션을 액세스 할 때 파티션 마다 Union All로 분리해서 Index scan을 할지 FTS를 할지 판단하라
    3.6 SJC (Set To Join Conversion) : 집합연산을 조인으로 바꾸어라
    3.7 CSU (Complex Subquery Unnesting) : 복잡한 서브쿼리를 조인으로 바꾸어라
    3.8 CVM( Complex View Merging ) : Distinct나 Group By가 있는 뷰를 해체하라
    3.9 JPPD Union View: Union을 사용한 뷰에 조인 조건을 침투시켜라
    3.10 JPPD Union All View: Union All을 사용한 뷰에 조인 조건을 침투시켜라
    3.11 JPPD Outer Join View: 뷰에 Outer 조인을 사용한 경우 조인 조건을 침투 시켜라
    3.12 Multi Level JPPD: 뷰 내부에 또 다른 뷰가 있더라도 메인 쿼리의 조인 조건을 침투 시켜라
    3.13 JPPD Extension: Distinct 나 Group By, Semi/Anti-join을 사용한 뷰에 조인 조건을 침투시켜라
    3.14 GBP (Group By Placement) : Group By를 먼저 수행하고 Join 하라
    3.15 GBPD (Group By Push Down) : Parallel Query 수행 시 Group by를 한번 더 수행하라
    3.16 JF(Join Factorization) : Union / Union All 사용시 공통으로 사용하는 테이블을 분리시켜라
    3.17 ST ( Star Transformation ): From 절의 Dimension 테이블을 서브쿼리로 변환하고 DSJ 기능을 이용하여 Bitmap 연산을 수행하라
    3.18 CBST (Cost Based Star Transformation): Star Transformation 적용시 Cost Based 환경을 이용하라
    3.19 MVR(Materialized View Rewrite): Materialized View를 사용하지 않는 SQL을 Materialized View를 사용하는 SQL로 바꾸어라
    3.20 JBE (Join Back Elimination) : Bitmap Join Index를 사용할 경우 필요 없는 테이블 액세스를 제거하라

    3.C Part 3을 마무리 하며

    Part 4 - Cost Based Query Transformation Internal

    들어가기
    4.1 Search Type의 개념과 종류
    4.2 Search Type 분석에 사용될 SQL
    4.3 Exhaustive Type 전략
    4.4 Iterative Type 전략
    4.5 Linear Type 전략
    4.6 Two_Pass Type 전략
    4.7 Off Option 전략
    4.8 On Option 전략
    4.9 State Space란 무엇인가
    4.10 CA*(Cost Annotation)란 무엇인가
    4.11 메모리 관리
    4.12 Interleaving: 선 변환 과정이 끝나면 후 변환 과정을 연이어 수행하라
    4.13 Juxtaposition: 배타적인 변환을 동시에 고려하여 Cost가 낮은 것을 선택하라
    4.14 실무에 적용하기
    4.A Part 4를 마무리 하며

    부록과 색인
    실무에서의 Query Transformation 이슈
    미해결 과제
    Epilogue
    Bibliography
    Index

    저자소개

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    오동규
    E-mail: odong91@hanafos.com
    Blog: Science Of Database(http://scidb.tistory.com)
    Blog ID: extremedb

    홍익대학교를 졸업하고 오픈메이드 컨설팅의 수석컨설턴트로 재직 중이며 DA(Data Architect)를 맡고 있다. 데이터베이스의 과학과 예술을 널리 전파하는 것을 모토로 삼고 있으며 기업은행, 서울보증보험, 수협, 농협에서 데이터모델링과 DBMS 튜닝 컨설팅 및 교육을 수행하였다. 월간 마이크로 소프트웨어에 DBMS와 관련된 고급원서의 서평을 다수 기고하였다. 저자의 블로그를 방문하면 과학(DBMS)과 예술(데이터 모델링)에 관한 깊이 있는 이야기를 공

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      10.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용