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

전문가를 위한 트러블슈팅 오라클 퍼포먼스 [2판]

원제 : Troubleshooting Oracle Performance
소득공제

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

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

45,000원

  • 40,500 (10%할인)

    2,250P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 사은품(4)

책소개

오라클 성능과 튜닝을 위한 필독서!

여러분의 데이터베이스 애플리케이션이 충분한 속도를 내지 못한다면 당신은 어떻게 할 것인가? 당연히 트러블슈팅을 생각할 것이다. 운 좋게 애플리케이션에서 속도를 잡아먹는 부분을 쉽게 찾는다고 해도 그 해결책을 찾기란 어려운 일이다. 이 책은 데이터베이스 애플리케이션의 성능 문제를 일으키는 숨은 원인을 찾기 위한 방법을 제공한다. 저자인 크리스티안 안토니니는 이와 관련하여 15년 이상의 경력을 가지고 있으며, 이를 통해 얻은 그만의 방법을 이 책에서 아낌없이 제공한다.

출판사 서평

오라클 성능과 튜닝을 위한 필독서!
적절한 예제와 명쾌한 설명으로 가득 찬, 오라클 문제 해결 바이블!


여러분의 데이터베이스 애플리케이션이 충분한 속도를 내지 못한다면 당신은 어떻게 할 것인가? 당연히 트러블슈팅을 생각할 것이다. 운 좋게 애플리케이션에서 속도를 잡아먹는 부분을 쉽게 찾는다고 해도 그 해결책을 찾기란 어려운 일이다. 이 책은 데이터베이스 애플리케이션의 성능 문제를 일으키는 숨은 원인을 찾기 위한 방법을 제공한다. 저자인 크리스티안 안토니니는 이와 관련하여 15년 이상의 경력을 가지고 있으며, 이를 통해 얻은 그만의 방법을 이 책에서 아낌없이 제공한다.

또한, 저자는 데이터베이스 엔진이 SQL 문장을 어떻게 실행시키는지에 대한 기초 지식을 설명하며, 애플리케이션 요구사항을 만족시키기 위한 성능 관련 계획 수립에도 도움을 준다. 이를 통해 여러분은 탄탄한 이론적 기초 지식을 얻는 것은 물론이고, 매일 직면하는 성능 관련 문제들을 해결할 수 있을 것이다. 제1판과 달리, 제2판에서는 오라클 데이터베이스 11.2부터 12c 버전의 최신 변경사항까지 포함하였다.

이 책의 주요 내용
- 체계적인 성능 문제 식별 방법
- 애플리케이션 성능 목표를 달성하기 위한 쿼리 옵티마이저 설정 방법
- 실행 계획을 획득하고 해석하는 방법과 실행 계획을 효율성 있게 측정하는 방법
- 오라클 힌트, SQL 프로파일, 스토어드 아웃라인, SQL 플랜 베이스라인과 같은 기법을 사용하여 SQL을 튜닝하는 방법
- 성능 저하 없이 파싱 영향을 최소화하는 방법
- 데이터 액세스, 조인, 데이터베이스 물리 설계를 최적화하는 방법
- 병렬 처리, 머티리얼라이즈드 뷰, 결과 캐싱을 이용하여 성능을 향상시키는 방법

추천사

이 책의 구성을 보면 간결함에 놀라곤 한다. 특히, 다음 세 개의 장 제목에 나는 강한 인상을 받았다. 지금 당장은 세 장의 내용이 읽을 만한 가치가 있는지 신경 쓰지 마라. 문제 해결 시 가장 먼저 제기해야 할 질문으로 알려져 있는 개념을 제목만으로 놀랄 만큼 명확하게 표현하고 있다.

* 3장: 재현 가능한 문제의 분석
* 4장: 재현 불가능한 문제의 실시간 분석
* 5장: 재현 불가능한 문제의 사후 분석

모든 문제는 위의 세 가지 유형으로 분류할 수 있다. 문제가 어느 유형에 속하느냐에 따라 문제 해결에 사용되는 전략이 결정된다는 것을 알겠는가? 문제 해결에 사용할 수 있는 기본 데이터는 모든 경우 동일하지만, 시간이 지남에 따라 일부 데이터는 사용할 수 없거나 세부 정보에 차이가 있을 수 있다. 문제를 이런 식으로 분류한다는 사실을 아는 것이 문제 해결을 위한 방법론의 첫 단계다.

아마 이 책을 다 읽으면 여러분이 생각하는 것보다 더 많은 것을 이미 알고 있었다는 사실을 깨달을 테지만, 한편으로는 모든 퍼즐 조각이 합쳐지고, 틈이 메워지고, 크리스티안의 지식과 통찰을 통해 정보가 재구성되면서 이미 알고 있던 지식에서 더 많은 것을 배우게 될 것이다.
- 조나단 루이스

나에게 있어서 이 책은 기술적인 참고서이자 신뢰할 수 있는 지침서다. 이 책에는 내가 재사용할 수 있는 엄청난 양의 내용이 완벽하게 문서화되어 있다. 또한, 이 책에는 나도 동의하는 크리스티안의 견해와 열정에 관한 여러 가지 관점에서의 설득력 있는 주장들이 담겨있다. 이러한 크리스티안의 주장을 통해 더 많은 사람들이 올바른 대응 방법을 얻을 수 있을 것이라 확신한다.

크리스티안은 내가 영웅으로 생각하는 Dave Ensor, Lex de Haan, Anjo Kolk, Steve Adams, Jonathan Lewis, Tom Kyte와 기타 다른 사람들의 기존 지식을 발판으로 성장한 영리하고 열정적인 사람이다. 자, 이제 우리도 크리스티안의 지식을 발판으로 하여 더 넓은 세상으로 나아가자!
- 캐리 밀셉

목차

PART I 기초
CHAPTER 1 성능 문제
1.1 성능 계획의 필요성
1.2 성능을 고려한 설계
1.3 성능 문제 확인 방법
1.4 성능 문제 접근 방법
1.5 2장에 들어가기 전에

CHAPTER 2 핵심 개념
2.1 선택도와 카디널리티
2.2 커서란 무엇인가?
2.3 커서의 생명주기
2.4 파싱의 작동 원리
2.5 블록 읽기와 쓰기
2.6 계측
2.7 2부에 들어가기 전에

PART II 문제 식별
CHAPTER 3 재현 가능한 문제의 분석
3.1 데이터베이스 호출 트레이스
3.2 PL/SQL 코드 프로파일링
3.3 4장에 들어가기 전에

CHAPTER 4 재현 불가능한 문제의 실시간 분석
4.1 분석 로드맵
4.2 동적 성능 뷰
4.3 진단 팩과 튜닝 팩을 이용한 분석
4.4 진단 팩을 사용하지 않는 분석
4.5 5장에 들어가기 전에

CHAPTER 5 재현 불가능한 문제의 사후 분석
5.1 리포지터리
5.2 Automatic Workload Repository
5.3 Statspack
5.4 진단 팩을 이용한 분석
5.5 진단 팩을 이용하지 않는 분석
5.6 3부에 들어가기 전에

PART III 쿼리 옵티마이저
CHAPTER 6 쿼리 옵티마이저
6.1 기초 사항
6.2 아키텍처
6.3 쿼리 변환
6.4 7장에 들어가기 전에

CHAPTER 7 시스템 통계
7.1 dbms_stats 패키지
7.2 이용 가능한 시스템 통계에는 어떠한 것들이 있는가?
7.3 시스템 통계 수집하기
7.4 시스템 통계 복원하기
7.5 백업 테이블을 사용한 작업
7.6 관리 오퍼레이션의 로깅
7.7 쿼리 옵티마이저에 미치는 영향
7.8 8장에 들어가기 전에

CHAPTER 8 오브젝트 통계
8.1 dbms_stats 패키지
8.2 이용할 수 있는 오브젝트 통계에는 어떠한 것들이 있는가?
8.3 오브젝트 통계 수집하기
8.4 dbms_stats 패키지 설정하기
8.5 글로벌 임시 테이블로 작업하기
8.6 펜딩 오브젝트 통계로 작업하기
8.7 파티셔닝된 오브젝트로 작업하기
8.8 오브젝트 통계 수집 스케줄링하기
8.9 오브젝트 통계 복원하기
8.10 오브젝트 통계 잠그기
8.11 오브젝트 통계 비교하기
8.12 오브젝트 통계 삭제하기
8.13 오브젝트 통계 export, import, get, set
8.14 관리 작업의 로깅
8.15 오브젝트 통계를 최신으로 유지하기 위한 전략
8.16 9장에 들어가기 전에

CHAPTER 9 쿼리 옵티마이저 구성하기
9.1 쿼리 옵티마이저를 구성할 것인가, 말 것인가?
9.2 구성 로드맵
9.3 적절한 파라미터 설정하기
9.4 10장에 들어가기 전에

CHAPTER 10 실행 계획
10.1 실행 계획 얻기
10.2 dbms_xplan 패키지
10.3 실행 계획 해석하기
10.4 비효율적인 실행 계획 식별하기
10.5 4부에 들어가기 전에

PART IV 최적화
CHAPTER 11 SQL 최적화 기법
11.1 액세스 구조 변경하기
11.2 SQL 구문 변경하기
11.3 힌트
11.4 실행 환경 변경하기
11.5 스토어드 아웃라인
11.6 SQL 프로파일
11.7 SQL 플랜 매니지먼트
11.8 12장에 들어가기 전에

CHAPTER 12 파싱
12.1 파싱 문제 식별
12.2 파싱 문제 해결하기
12.3 파싱 문제 해결을 위한 차선책
12.4 애플리케이션 프로그래밍 인터페이스 사용하기
12.5 13장에 들어가기 전에

CHAPTER 13 데이터 액세스 최적화
13.1 비효율적인 액세스 패스 식별
13.2 약한 선택도를 가진 SQL 구문
13.3 강한 선택도를 가진 SQL 구문
13.4 14장에 들어가기 전에

CHAPTER 14 조인 최적화
14.1 용어 정의
14.2 네스티드 루프 조인
14.3 머지 조인
14.4 해시 조인
14.5 아우터 조인
14.6 조인 방법 선택
14.7 파티션 와이즈 조인
14.8 스타 변환
14.9 15장에 들어가기 전에

CHAPTER 15 데이터 액세스와 조인 최적화를 넘어서
15.1 머티리얼라이즈드 뷰
15.2 결과 캐싱
15.3 병렬 처리
15.4 direct-path insert
15.5 로우 프리페칭
15.6 배열 처리 인터페이스
15.7 16장에 들어가기 전에

CHAPTER 16 물리 설계 최적화
16.1 최적의 칼럼 순서
16.2 최적의 데이터타입
16.3 로우 마이그레이션과 로우 체이닝
16.4 블록 경합
16.5 데이터 압축

찾아보기

본문중에서

간단히 말해서, 애플리케이션의 목적은 애플리케이션을 이용함으로써 비즈니스에 이익을 가져다 주는 것이다. 결과적으로 애플리케이션 성능을 최적화하는 이유는 이익을 극대화하기 위함이다. 무조건 애플리케이션 성능을 극대화하자는 것이 아니며, 비용과 성능 사이에서 최적의 균형점을 찾자는 것이다. 실제로 성능 최적화 작업에 소요된 노력은 이를 통해 얻을 수 있는 이익으로 보상받을 수 있어야 한다. 이는 비즈니스 관점에서 봤을 때 성능 최적화 작업이 항상 유의미한 것은 아니라는 사실을 의미한다.
(/ p.19)

통계 수집 후 비효율적인 실행 계획이 나타난다면 다음의 두 가지 사항을 시도해볼 수 있다. 첫 번째는 통계를 수집하기 전에 이상 없이 잘 사용하던 오브젝트 통계로 복원하여 문제를 해결하는 것이다. 두 번째는 새로 수집된 오브젝트 통계를 사용하는 쿼리 옵티마이저가 비효율적인 실행 계획을 생성하게 된 원인을 찾아보는 것이다. 이를 위해 우선 새로 생성된 통계가 데이터를 올바르게 설명하는지를 조사해야 한다. 예를 들어, 분포가 바뀐 데이터에 대해 샘플링으로 통계를 수집한다면 다른 히스토그램이 만들어질 수 있다. 오브젝트 통계가 좋지 않다면, 통계 수집 자체에 문제가 있거나 통계를 수집하는 데 사용된 파라미터가 문제일 것이다. 그러나 오브젝트 통계에 아무런 문제가 없다면, 두 가지 추가 가능성이 있다. 즉, 쿼리 옵티마이저가 제대로 구성되어 있지 않거나 쿼리 옵티마이저가 오판한 것이다. 후자에 대해서는 제어할 수 있는 것이 거의 없지만, 전자에 대해서는 해결책을 찾을 수 있다.
(/ p.362)

실행 계획(execution plan)은 SQL 구문을 실행하기 위해 데이터베이스 엔진에서 어떠한 오퍼레이션을 수행하는지 알려준다. SQL 구문과 관련된 성능 문제를 분석하거나 쿼리 옵티마이저가 내린 결정에 의문이 들 때마다 실행 계획을 살펴봐야 한다. 실행 계획이 없다면 사하라 사막 한가운데에서 지팡이를 짚고 길을 더듬거리며 찾는 장님과 다를 바 없을 것이다. SQL 구문의 성능을 분석하거나 궁금할 때 가장 먼저 해당 구문의 실행 계획을 살펴봐야 한다는 사실은 아무리 강조해도 지나치지 않다.
(/ p.401)

여기서 핵심은 완전히 동일한 데이터를 다른 SQL 구문을 사용하여 추출할 수도 있다는 사실을 깨닫는 것이다. 따라서 SQL 구문을 최적화할 때마다 동일한 역할을 수행하는 다른 SQL 구문이 없는지 자문해봐야 한다. 만약 동일한 역할을 수행하는 다른 SQL 구문이 존재한다면, 어떤 SQL이 가장 좋은 성능을 제공하는지 평가하기 위해 SQL 구문의 실행 계획을 주의 깊게 비교해야 한다.
(/ p.485)

여기서 딜레마는 파싱 문제를 개선하기 위해서는 테스트 케이스 1과 같은 코드를 수정할 필요가 있는데, 불행히도 코드 수정이 항상 가능한 것은 아니다. 이는 소스 코드가 없거나 코드 개선을 막는 기술적 장벽 때문이거나(예를 들어, 프로그래밍 환경에서 prepared 구문을 지원하지 않는 경우), 모든 코드를 수정하는 데 너무 많은 비용이 들기 때문일 수 있다. 다음 절에서는 올바른 방법을 적용했을 때와 비슷한 결과를 얻기 위해 이러한 문제를 우회할 수 있는 차선책을 설명할 것이다. 차선책을 적용했을 때의 성능이 올바른 방법을 사용했을 때만큼 좋지는 않더라도 어떤 상황에서는 아무것도 하지 않는 것보다는 훨씬 낫다.
(/ p.583)

저자소개

크리스티안 안토니니(Christian Antognini) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

1995년부터 오라클 데이터베이스의 작동 원리를 이해하는 데 중점을 두고 노력해왔다. 그의 주요 관심사는 논리 및 물리 데이터베이스 설계, 쿼리 옵티마이저 등 기본적으로 애플리케이션 성능 관리에 관한 것들이다. 현재는 스위스 취리히에 위치한 Trivadis의 수석 컨설턴트이자 트레이너로 일하고 있다.

위즈베이스 [역] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

위즈베이스는 2003년 설립된 데이터베이스 전문 컨설팅 회사로 성능 튜닝, 대용량 데이터 마이그레이션, 데이터 모델링, 성능 테스트, 기술지원 등의 서비스를 제공하고 있다.

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

현대정보기술, 현대오토에버에서 근무하였으며, 현재는 (주)위즈베이스의 수석 컨설턴트이자 국내 최대 여행사인 하나투어에서 엑사데이터 전문 컨설턴트 역할을 수행하고 있다. 고객의 비즈니스를 이해하기 위해 방송통신대학 관광학과에 다니고 있다.

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

㈜위즈베이스 상무이사이며, 데이터베이스와 End-to-End 성능 분야의 업무를 맡고 있다. 삼성 SDS, 한국오라클에서 근무했고, ㈜웨어밸리와 ㈜위즈베이스 기술연구소장을 역임하면서 데이터베이스/ DB보안 분야의 도구와 솔루션을 기획하고 개발했다. 정보관리기술사, 정보시스템감리사, 데이터품질인증심사원 자격증을 보유하고 있다.

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

(주)위즈베이스 기술이사이며, LG전자, 코스콤, 하이닉스, 대림산업, 한국정보통신, KT, 하나투어, 한국도로공사, 외환카드, 일산병원, 건대병원 등에서 데이터베이스 성능 진단 및 개선 프로젝트를 주로 수행했다.

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

㈜위즈베이스 수석 컨설턴트이며, DAP, SQLP, OCM 10g/11g, 오라클 리눅스/솔라리스 자격증을 보유하고 있다.
컨설팅한 업체로는 대법원, KTF, LG U+, 한국투자증권, 코스콤 등이 있고, 옮긴 책으로는 [프로오라클 데이터베이스 11g RAC 리눅스](2014, 공역)와 [전문가를 위한 오라클 엑사데이터](2013)가 있다.

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

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

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    교환/환불

    교환/환불 방법

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

    교환/환불 가능 기간

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

    교환/환불 비용

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

    교환/환불 불가사유

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

    소비자 피해보상

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

    기타

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

    배송안내

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

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

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

    • 배송비

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

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

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

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

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

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

    업체직접배송상품 구매

    업체별 상이한 배송비 적용