Oracle SQL 실전 튜닝 나침반 (성능 최적화의 길을 안내하다)

Oracle SQL 실전 튜닝 나침반 (성능 최적화의 길을 안내하다)

$51.17
Description
SQL 튜닝, 데이터 성능 최적화의 핵심
현대의 데이터 환경에서는 속도와 효율성이 비즈니스 성과를 결정하는 중요한 요소입니다. 대용량 데이터를 다루는 애플리케이션이 늘어나고, 데이터 웨어하우스 및 클라우드 환경이 확대되면서 SQL 튜닝은 단순한 성능 최적화가 아니라 비즈니스의 경쟁력을 좌우하는 핵심 기술이 되었습니다.
약 10년 전에 “Oracle 실전 튜닝 기본 해법”이라는 책을 쓴 이후 오래간만에 다시 SQL 튜닝 책을 쓰게 되었습니다. “Oracle 실전 튜닝 기본 해법”은 총 12단원으로 구성을 했었습니다. 이번 책은 총 19단원으로 확장했으며 최근 가장 많이 쓰이고 있는 버전인 19c를 기준으로 작성했습니다.
SQL 개발을 몇 년씩 해왔더라도 SQL 튜닝이라는 주제 자체가 접근하기에는 쉽지 않은 것은 사실입니다. 실무에서 튜닝한 결과를 이용해서 개발팀 대상으로 SQL 튜닝 교육과 튜닝 사례 교육도 진행하면서 어떤 목차로 어떤 주제로 정리를 해야 접근하기가 쉬울지 생각을 많이 했습니다. SQL 초보자가 튜닝에 접근하기는 쉽지 않겠지만 SQL 스터디 및 개발 업무를 2~3년 이상 해온 사람이라면 이 책을 통해 어렵지 않게 접근할 수 있을 것이라 생각합니다.


AI 시대에도 튜닝 전문가의 역할은 중요하다
AI가 자동으로 실행계획을 분석하거나 튜닝을 시도해서 튜닝 결과를 추천할 수 있지만 모든 상황을 정확히 해석하진 못합니다. 복잡한 비즈니스 로직이나 데이터 모델은 전문가의 경험과 해석이 필수입니다. AI 기반 튜닝 도구(예 : Oracle SQL Tuning Advisor)는 성능을 개선하기도 하지만, 잘못 적용하면 성능이 악화될 가능성도 있기 때문에 전문가의 사전 검토와 사후 검증이 필요합니다. 복잡한 JOIN 및 분석 함수 등이 포함된 SQL은 자동 튜닝이 어려우며 고난이도 SQL은 여전히 전문가가 직접 다뤄야 합니다.
요약하자면 AI는 튜닝 전문가의 도구이지 대체자가 아니며 AI의 추천을 해석하고 책임질 사람은 여전히 튜닝 전문가입니다.
개발자와 튜닝 전문가는 AI가 추천한 튜닝 기법을 검증하고, 비즈니스 로직에 맞는 최적의 SQL을 설계해야 합니다. AI는 SQL 튜닝을 자동화할 수 있어도, 데이터 파티셔닝, INDEX 설계, OLTP 및 OLAP 환경별 최적화 전략을 자동으로 결정할 수 없습니다. AI 시대에도 튜닝 전문가가 데이터 모델을 이해하고, 최적의 SQL을 설계하는 역량이 필요합니다. SQL 튜닝의 원리를 이해하고, 자동화 도구와 협업하는 전문가로 성장해야 합니다.
저자

채윤수

현재오픈메이드컨설팅에서전문위원으로재직중이며DB분야를천직으로여기고살아가고있다.

ㆍ블로그(데이터아티스트)-http://blog.naver.com/cyszero7
ㆍ오픈메이드컨설팅-http://www.openmade.co.kr

목차

PART01.Oracle기본아키텍쳐
section01 OracleDatabaseArchitecture
section02 MemoryArchitecture
section03 ProcessArchitecture
section04 OracleStorageStructures

PART02.Oracle성능최적화를위한기본원리
section01 OracleSQL성능최적화개요
section02 DB튜닝핵심원리개요
section03 LibraryCache효율화:SQL파싱부하해소
section04 DatabaseCALL최소화
section05 I/O효율화

PART03.성능튜닝도구및실행계획분석
section01 DBMS_XPLAN.DISPLAY_CURSOR
section02 DBMS_XPLAN.DISPLAY_AWR
section03 SQL_MONITOR
section04 실행계획순서기본분석법
section05 실행계획순서예외사항분석법

PART04.INDEXACCESSPATTERN
section01 B-TreeINDEX구조
section02 INDEXRANGESCAN
section03 INDEXRANGESCANDESCENDING
section04 INDEXUNIQUESCAN
section05 INDEXRANGESCAN(MIN/MAX)
section06 ROWIDACCESS
section07 INDEX컬럼가공
section08 CLUSTERINGFACTOR
section09 FULLTABLESCAN
section10 INDEXACCESS조건,FILTER조건,선택도
section11 INDEXSKIPSCAN
section12 INDEXINLISTINTERATOR
section13 INDEXFULLSCAN
section14 INDEXFULLSCAN(MIN/MAX)
section15 INDEXFASTFULLSCAN
section16 INDEXCOMBINE
section17 INDEXJOIN
section18 INDEXCOMBINE과INDEXJOIN의차이점비교
section19 INDEXFILTERING효과

PART05.INDEX설계전략
section01 선택도와카디널리티
section02 INDEX컬럼입력,삭제,갱신
section03 INDEX선정기준
section04 테이블유형별INDEX설계기준
section05 결합컬럼INDEX특징및컬럼순서결정기준
section06 INDEX선정절차
section07 INDEX설계예제

PART06.JOIN
section01 NESTEDLOOPJOIN
section02 HASHJOIN
section03 SORTMERGEJOIN
section04 JPPD(JoinPredicatePushDown)
section05 JOIN순서가성능에미치는영향

PART07.서브쿼리
section01 FILTER서브쿼리
section02 EARLIERFILTER서브쿼리
section03 NLSEMI/ANTIJOIN
section04 상관관계서브쿼리(FILTER,NLSEMIJOIN)활용
section05 HASHSEMI/ANTIJOIN
section06 SORTMERGESEMI/ANTIJOIN
section07 스칼라서브쿼리
section08 비상관관계서브쿼리

PART08.실행계획분리
section01 CONCATNATION을이용한실행계획분리
section02 UNIONALL을이용한실행계획분리

PART09.페이징처리
section01 부분범위처리,전체범위처리
section02 표준PAGENATION사용방법
section03 표준PAGENATION사용-최적의INDEX존재
section04 표준PAGENATION사용-최적의INDEX없음
section05 표준PAGENATION사용-처리순서
section06 PAGING처리응용
section07 웹게시판형태에서PAGING처리

PART10.PGA튜닝
section01 SORTORDERBY
section02 SORTORDERBY&SORTORDERBYSTEOPKEY(STOPKEY)
section03 SORTGROUPBY&HASHGROUPBY
section04 SORTUNIQUE&HASHUNIQUE
section05 HASHJOIN,HASHSEMIJOIN&HASHANTIJOIN
section06 SORTMERGEJOIN,MERGESEMIJOIN&MERGEANTIJOIN

PART11.분석함수와실행계획
section01 WINDOWSORT
section02 WINDOWSORTPUSHEDRANK
section03 WINDOWNOSORT
section04 WINDOWNOSORTSTOPKEY
section05 WINDOWBUFFER
section06 분석함수실행계획심화

PART12.동일데이터반복ACCESS튜닝
section01 서브쿼리OR인라인뷰를통한반복ACCESS-분석함수활용
section02 UNIONALL반복ACCESS-SQL통합
section03 UNIONALL반복ACCESS-카테시안JOIN
section04 UNIONALL반복ACCESS-소계처리함수의활용
section05 UNIONALL반복ACCESS-WITH문의활용
section06 UPDATE문서브쿼리통한반복ACCESS-MERGE문활용
section07 MERGE대상테이블반복ACCESS

PART13.기타응용튜닝
section01 여러행→한개의행,열로묶기
section02 한개의행,열로묶인데이터→여러행으로분리
section03 행(ROW)간의누적곱
section04 카테시안JOIN응용-일,주,월현황
section05 INDEXJOIN응용
section06 OUTLINE정보를이용한튜닝

PART14.옵티마이저
section01 옵티마이저란?
section02 10053Trace
section03 HeuristicQueryTransformation

PART15.Oracle트랜잭션과RedoLog튜닝
section01 Transaction
section02 Redo&Undo
section03 데이터변경량과Redo&Undo
section04 튜닝실무사례

PART16.파티셔닝
section01 개요
section02 기본개념
section03 파티셔닝유형
section04 파티션KEY전략
section05 파티셔닝테이블의INDEX
section06 파티션관리
section07 파티션Pruning

PART17.OracleExadataBasic
section01 Exadata개요
section02 오프로딩
section03 STORAGEINDEX
section04 HCC(HybridColumnerCompression)
section05 SMARTFLASHCACHE
section06 병렬처리
section07 Exadata에서개발시고려사항

PART18.Oracle성능분석기본방법론
section01 성능분석방법론개요
section02 핵심성능데이터이해
section03 성능분석유틸리티
section04 기본적성능분석

PART19.튜닝실무사례
section01 관련단원-4.INDEXACCESS패턴
section02 관련단원-4.INDEXACCESS패턴
section03 관련단원-6.JOIN
section04 관련단원-6.JOIN(JPPD)
section05 관련단원-7.서브쿼리
section06 관련단원-6.JOIN,7.서브쿼리,12.동일데이터반복ACCESS튜닝section07 관련단원-8.실행계획분리
section08 관련단원-6.JOIN,8.실행계획분리
section09 관련단원-7.서브쿼리,10.PGA튜닝
section10 관련단원-6.JOIN,7.서브쿼리,10.PGA튜닝
section11 관련단원-12.동일데이터반복ACCESS튜닝
section12 관련단원-5.INDEXACCESS패턴,9.페이징처리
section13 관련단원-9.페이징처리,7.서브쿼리
section14 관련단원-6.JOIN
section15 관련단원-6.JOIN(JPPD)
section16 관련단원-7.서브쿼리

출판사 서평

이책의구성및특징
이책은Oracle19c를기준으로SQL성능최적화에필수적인개념과실전튜닝기법을다룹니다.
수많은SQL을튜닝하다보면가장많이발생하는성능저하의80%는패턴이한정되어있습니다.이책은실무에서가장많이발생하는성능저하패턴을80%해결하는방법을중심으로정리하면서,동시에고급튜닝기법도함께소개하고있습니다.

●SQL튜닝의기본원리
Oracle기본아키텍처(1장)
SQL성능최적화를위한원리및튜닝도구(2~3장)
SQL이실행되는방식과성능저하의주요원인을파악하는것이튜닝의첫걸음입니다.이장에서는SQL성능최적화를위한기본원리를살펴보고실행계획을분석하고성능을측정하는다양한튜닝도구(DBMS_XPLAN_DISPLAY_CURSOR,SQL모니터링Report등)를다룹니다.

●SQL실행최적화전략
INDEX(4~5장)
JOIN(6장)
서브쿼리및실행계획분리(7~9장)
SQL튜닝에서가장중요한요소중하나는INDEX활용방식입니다.INDEX를어떻게설계하고,JOIN방식을최적화하는지에따라성능차이가크며,이를최적화하는전략을다룹니다.또한,서브쿼리,실행계획분리,페이징처리최적화기법을상세히설명하여SQL성능을개선하는방법을제공합니다.

●기타SQL튜닝기법
PGA튜닝및실행계획분석(10~11장)
데이터반복ACCESS최적화(12장)
기타응용튜닝및옵티마이저이해(13~14장)
SQL실행중불필요한메모리사용을줄이고,동일데이터반복접근을최소화하는전략을소개합니다.그리고옵티마이저의기본적인원리와응용튜닝에대한부분도함께다룹니다.

●대용량데이터환경에서의튜닝및실무사례
Oracle트랜잭션및RedoLog튜닝(15장)
파티셔닝및ExadataBasic(16~17장)
Oracle성능분석및실무사례(18~19장)
대용량데이터환경에서파티셔닝은필수적입니다.그리고대용량데이터환경에서엑사데이터활용이증가하고있습니다.이와관련해서파티셔닝과OracleExadata활용에대한부분을다루었습니다.
그리고SQL튜닝전문가는SQL튜닝업무만담당하지않습니다.Database에성능문제가발생하면Database전반에걸친성능문제의원인을파악하고분석하는역할을수행합니다.이에따라서Oracle성능분석기본방법론에대해서도다루었습니다.
마지막으로,실무사례를통해이론이실제업무에서어떻게적용되는지를이해할수있도록구성하였습니다.


SQL튜닝의길잡이,나침반이되다
AI시대가되어SQL튜닝을돕지만튜닝전문가의역할은계속필요합니다.Oracle도최근버전인23에서는23ai로출시를했지만튜닝의본질은변하지않습니다.이책이여러분의SQL성능최적화여정에서확실한나침반