HOME > 상세정보

상세정보

오라클 성능 고도화 원리와 해법 (9회 대출)

자료유형
단행본
개인저자
조시형
서명 / 저자사항
오라클 성능 고도화 원리와 해법 / 조시형 지음
발행사항
서울 :   비투엔컨설팅,   2009-2010  
형태사항
2책 : 삽화 ; 27 cm
총서사항
Data promaster series
ISBN
9788996246015(v.1) 9788996246022(v.2) 9788996246008(세트)
일반주기
색인수록  
부록: 1. 라이브러리 캐시 Lock & Pin, 2. Cursor_Sharing, 3. Deterministic 함수 사용 시 주의사항  
000 00864camcc2200277 c 4500
001 000045541728
005 20101105190437
007 ta
008 090605m20092010ulka 001c kor
020 ▼a 9788996246015(v.1) ▼g 94560
020 ▼a 9788996246022(v.2) ▼g 94560
020 1 ▼a 9788996246008(세트)
035 ▼a (KERIS)BIB000011678634
040 ▼a 211032 ▼d 211009
082 0 4 ▼a 005.75/85 ▼2 22
085 ▼a 005.7585 ▼2 DDCK
090 ▼a 005.7585 ▼b 2009z3
100 1 ▼a 조시형 ▼0 AUTH(211009)16547
245 1 0 ▼a 오라클 성능 고도화 원리와 해법 / ▼d 조시형 지음
260 ▼a 서울 : ▼b 비투엔컨설팅, ▼c 2009-2010
300 ▼a 2책 : ▼b 삽화 ; ▼c 27 cm
440 0 0 ▼a Data promaster series
500 ▼a 색인수록
500 ▼a 부록: 1. 라이브러리 캐시 Lock & Pin, 2. Cursor_Sharing, 3. Deterministic 함수 사용 시 주의사항
945 ▼a KINS

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.7585 2009z3 1 등록번호 111542852 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.7585 2009z3 2 등록번호 111567049 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 3 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7585 2009z3 2 등록번호 121192629 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 4 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7585 2009z3 2 등록번호 121192630 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 5 소장처 세종학술정보원/과학기술실/ 청구기호 005.7585 2009z3 2 등록번호 151285399 도서상태 대출가능 반납예정일 예약 서비스
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.7585 2009z3 1 등록번호 111542852 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.7585 2009z3 2 등록번호 111567049 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7585 2009z3 2 등록번호 121192629 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.7585 2009z3 2 등록번호 121192630 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.7585 2009z3 2 등록번호 151285399 도서상태 대출가능 반납예정일 예약 서비스

컨텐츠정보

책소개

고성능 데이터베이스 개발 및 운영 환경에 실제 적용할 수 있는 실용적 해법들을 기본 원리부터 상세하게 설명하는 책. 1~3장에서는 데이터베이스 성능을 논할 때 기본적으로 알아야 할 개념과 아키텍처, 그리고 성능 관리 방법론과 도구 사용법에 대해 설명한다. 아울러 4장에서 라이브러리 캐시 최적화, 5장에서 데이터베이스 Call 최소화, 6장에서는 I/O 효율화 및 버퍼캐시 최적화를 다룬다.

초 대용량 데이터베이스 환경의 여러 차세대 시스템 구축 프로젝트에서 얻은 소중한 경험과 기술 노하우를 널리 전파하려는 비투엔컨설팅의 첫 번째 역작이다. 데이터베이스 성능 최적화 전문가가 되기를 꿈꾸는 이들에게 최고의 지침서가 될 이 책은, 고성능 데이터베이스 개발 및 운영 환경에 실제 적용할 수 있는 실용적 해법들을 기본 원리부터 상세하게 설명한다.

1~3장에서는 데이터베이스 성능을 논할 때 기본적으로 알아야 할 개념과 아키텍처, 그리고 성능 관리 방법론과 도구 사용법에 대해 설명한다.
이 책에서 중점적으로 다루는 세 가지 주제는 다음과 같다.

4장. 라이브러리 캐시 최적화
SQL 옵티마이저의 최적화 과정을 설명하고, 바인드 변수가 데이터베이스 성능에 있어 왜 그렇게 중요한지를 설명한다.
그리고 바인드 변수 외에 라이브러리 캐시를 최적화하기 위한 기법들을 소개한다.
마지막으로, 대부분 프로젝트에서 이슈가 되는 Dynamic SQL에 관한 사용 기준을 제시하고, 급적 Static SQL로 구현할 수 있도록 몇가지 기법들을 소개한다.

5장. 데이터베이스 Call 최소화
모든 명령이 데이터베이스 Call을 통해 서버 프로세스에 전달되므로, 불필요하고 반복적인 Call 수행 횟수를 최소화하는 것은 데이터베이스 수행속도를 향상시키고
확장성을 높이는 매우 중요하고 핵심적인 튜닝 요소다. 이 장에서는 Execute Call, Fetch Call을 줄이는 방법, 그리고 PL/SQL 함수 수행 원리와 부하 해소 방안에 대해 상세히 설명한다.

6장. I/O 효율화 및 버퍼캐시 최적화
데이터베이스 성능을 좌우하는 가장 핵심적인 요인은 I/O 효율화에 있다. 인덱스, 조인, 옵티마이저 원리를 기반으로 한 I/O 효율화 상세 원리는 2권에서 다룰 예정이고, 여기서는 그것을 이해하는 데 필요한 기본 개념과 원리를 설명한다.


정보제공 : Aladin

저자소개

조시형(지은이)

現) 주식회사 디비안 대표이사 친절한 SQL 튜닝 저자 오라클 성능 고도화 원리와 해법 1, 2 저자 국가공인 SQLP, DAP 자격검정 전문위원 前) 이랜드, 인슈넷, 디엠에스랩, 엔코아, 비투엔 대용량 데이터 처리가 필수인 eCRM 솔루션 개발 업무를 담당하면서 DB 전문가의 길로 들어서게 되었다. 2010년에 한국데이터진흥원과 한국DB산업협의회가 공동 주관하는 제1회 우수DB人상을 수상하였고, 2016년 1월에 주식회사 디비안을 설립하였다. 20년 가까이 컨설팅을 수행하면서 터득한 성능관리 방법론을 솔루션화하는 일에 관심이 많고, DB 전문서적을 꾸준히 집필하면서 교육과 후배 양성에도 더 매진하려고 노력한다. 요즘은 인터넷 카페 디비안 포럼(www.dbian.net)을 통한 지식공유 활동에도 열심이다.

정보제공 : Aladin

목차

[volume. vol.2]----------
목차
추천사 = 4
저자 서문 = 6
Chapter 01 인덱스 원리와 활용
 01. 인덱스 구조 = 16
  (1) 범위 스캔 = 16
  (2) 인덱스 기본 구조 = 17
  (3) 인덱스 탐색 = 19
  (4) ROWID 포맷 = 22
 02. 인덱스 기본 원리 = 26
  (1) 인덱스 사용이 불가능하거나 범위 스캔이 불가능한 경우 = 26
  (2) 인덱스 컬럼의 가공 = 29
  (3) 묵시적 형변환 = 33
 03. 다양한 인덱스 스캔 방식 = 39
  (1) Index Range Scan = 39
  (2) Index Full Scan = 40
  (3) Index Unique Scan = 43
  (4) Index Skip Scan = 44
  (5) Index Fast Full Scan = 50
  (6) Index Range Scan Descending = 56
  (7) And-Equal, Index Combine, Index Join = 58
 04. 테이블 Random 액세스 부하 = 62
  (1) 인덱스 ROWID에 의한 테이블 액세스 = 62
  (2) 인덱스 클러스터링 팩터 = 67
  (3) 인덱스 손익분기점 = 74
 05. 테이블 Random 액세스 최소화 튜닝 = 79
  (1) 인덱스 컬럼 추가 = 79
  (2) PK 인덱스에 컬럼 추가 = 82
  (3) 컬럼 추가에 따른 클러스터링 팩터 변화 = 84
  (4) 인덱스만 읽고 처리 = 86
  (5) 버퍼 Pinning 효과 활용 = 92
  (6) 수동으로 클러스터링 팩터 높이기 = 94
 06. IOT, 클러스터 테이블 활용 = 98
  (1) IOT란? = 98
  (2) IOT, 언제 사용할 것인가? = 100
  (3) Partitioned IOT = 103
  (4) Overflow 영역 = 105
  (5) Secondary 인덱스 = 107
  (6) 인덱스 클러스터 테이블 = 118
  (7) 해시 클러스터 테이블 = 126
  (8) IOT와 클러스터 테이블을 동시에 적용한 튜닝 사례 = 128
 07. 인덱스 스캔 효율 = 131
  (1) 비교 연산자 종류와 컬럼 순서에 따른 인덱스 레코드의 군집성 = 132
  (2) 인덱스 선행 컬럼이 등치(=) 조건이 아닐 때 발생하는 비효율 = 134
  (3) BETWEEN 조건을 IN-List로 바꾸었을 때 인덱스 스캔 효율 = 137
  (4) Index Skip Scan을 이용한 비효율 해소 = 140
  (5) 범위검색 조건을 남용할 때 발생하는 비효율 = 143
  (6) 같은 컬럼에 두 개의 범위검색 조건 사용 시 주의 사항 = 147
  (7) Between과 Like 스캔 범위 비교 = 153
  (8) 선분이력의 인덱스 스캔 효율 = 158
  (9) Access Predicate와 Filter Predicate = 168
  (10) Index Fragmentation = 171
 08. 인덱스 설계 = 180
  (1) 가장 중요한 두 가지 선택 기준 = 180
  (2) 인덱스 설계는 공식이 아닌 전략과 선택의 문제 = 180
  (3) 결합 인덱스 컬럼 순서 결정 시, 선택도 이슈 = 191
  (4) 소트 오퍼레이션을 생략하기 위한 컬럼 추가 = 196
  (5) 인덱스 설계도 작성 = 198
 09. 비트맵 인덱스 = 200
  (1) 비트맵 인덱스 기본 구조 = 200
  (2) 비트맵 인덱스 활용 = 205
  (3) RECORDS_PER_BLOCK = 206
Chapter 02 조인 원리와 활용
 01. Nested Loops 조인 = 210
  (1) 기본 메커니즘 = 210
  (2) 힌트를 이용해 NL 조인을 제어하는 방법 = 211
  (3) NL 조인 수행 과정 분석 = 214
  (4) NL 조인의 특징 = 217
  (5) NL 조인 튜닝 실습 = 218
  (6) 테이블 Prefetch = 222
  (7) 배치 I/O = 225
  (8) 버퍼 Pinning 효과 = 226
 02. 소트 머지 조인 = 235
  (1) 기본 메커니즘 = 235
  (2) 소트 머지 조인의 특징 = 238
  (3) First 테이블에 소트 연산을 대체할 인덱스가 있을 때 = 239
  (4) 조인할 First 집합이 이미 정렬돼 있을 때 = 244
  (5) 조인 조건식이 등치(=) 조건이 아닐 때 = 246
 03. 해시 조인 = 249
  (1) 기본 메커니즘 = 249
  (2) 힌트를 이용한 조인 순서 및 Build Input 조정 = 251
  (3) 두 가지 해시 조인 알고리즘 = 252
  (4) Build Input이 Hash Area를 초과할 때 처리 방식 = 256
  (5) Build Input 해시 키 값에 중복이 많을 때 발생하는 비효율 = 260
  (6) 해시 조인 사용기준 = 264
 04. 조인 순서의 중요성 = 266
 05. Outer 조인 = 271
  (1) Outer NL 조인 = 271
  (2) Outer 소트 머지 조인 = 273
  (3) Outer 해시 조인 = 274
  (4) Full Outer 조인 = 278
 06. 스칼라 서브쿼리를 이용한 조인 = 284
  (1) 스칼라 서브쿼리 = 284
  (2) 스칼라 서브쿼리의 캐싱 효과 = 285
  (3) 두 개 이상의 값을 리턴하고 싶을 때 = 286
 07. 조인을 내포한 DML 튜닝 = 288
  (1) 수정 가능 조인 뷰 활용 = 288
  (2) Merge문 활용 = 295
  (3) 다중 테이블 Insert 활용 = 300
 08. 고급 조인 테크닉 = 301
  (1) 누적 매출 구하기 = 301
  (2) 선분이력 끊기 = 303
  (3) 데이터 복제를 통한 소계 구하기 = 306
  (4) 상호배타적 관계의 조인 = 310
  (5) 최종 출력 건에 대해서만 조인하기 = 312
  (6) 징검다리 테이블 조인을 이용한 튜닝 = 319
  (7) 점이력 조회 = 326
  (8) 선분이력 조인 = 333
  (9) 선분이력 조인 튜닝 = 337
  (10) 조인에 실패한 레코드 읽기 = 354
Chapter 03 옵티마이저 원리
 01. 옵티마이저 = 362
  (1) 옵티마이저란? = 362
  (2) 규칙기반 옵티마이저 = 363
  (3) 비용기반 옵티마이저 = 364
  (4) 옵티마이저 모드 = 367
 02. 옵티마이저 행동에 영향을 미치는 요소 = 374
  (1) SQL과 연산자 형태 = 374
  (2) 인덱스, IOT, 클러스터링, 파티셔닝, MV 등 옵티마이징 팩터 = 375
  (3) 제약 설정 = 375
  (4) 옵티마이저 힌트 = 377
  (5) 통계정보 = 379
  (6) 옵티마이저 관련 파라미터 = 380
  (7) DBMS 버전과 종류 = 381
 03. 옵티마이저의 한계 = 384
  (1) 부족한 옵티마이징 팩터 = 385
  (2) 부정확한 통계 = 385
  (3) 히스토그램의 한계 = 386
  (4) 바인드 변수 사용 시 균등분포 가정 = 386
  (5) 결합 선택도 산정의 어려움 = 387
  (6) 비현실적인 가정 = 387
  (7) 규칙에 의존하는 CBO = 388
  (8) 하드웨어 성능 특성 = 391
 04. 통계정보 Ⅰ = 392
  (1) 테이블 통계 = 392
  (2) 인덱스 통계 = 394
  (3) 컬럼 통계 = 395
  (4) 시스템 통계 = 397
 05. 카디널리티 = 403
  (1) 선택도 = 404
  (2) 카디널리티 = 406
  (3) NULL 값을 포함할 때 = 410
  (4) 조건절이 두 개 이상일 때 = 412
  (5) 범위검색 조건일 때 = 413
  (6) cardinality 힌트를 이용한 실행계획 제어 = 415
 06. 히스토그램 = 416
  (1) 히스토그램 유형 = 416
  (2) 도수분포 히스토그램 = 417
  (3) 높이균형 히스토그램 = 420
  (4) 바인드 변수 사용 시 카디널리티 계산 = 427
  (5) 결합 선택도 = 429
 07. 비용 = 433
  (1) I/O 비용 모델 = 434
  (2) CPU 비용 모델 = 439
 08. 통계정보 Ⅱ = 442
  (1) 전략적인 통계수집 정책의 중요성 = 442
  (2) DBMS_STATS = 445
  (3) 컬럼 히스토그램 수집 = 448
  (4) 데이터 샘플링 = 449
  (5) 파티션 테이블 통계 수집 = 450
  (6) 인덱스 통계 수집 = 455
  (7) 캐싱된 커서 Invalidation = 456
  (8) 자동 통계 수집 = 457
  (9) Statistics Preference = 459
Chapter 04 쿼리 변환
 01. 쿼리 변환이란? = 462
 02. 서브쿼리 Unnesting = 466
  (1) 서브쿼리의 분류 = 466
  (2) 서브쿼리 Unnsting의 의미 = 467
  (3) 서브쿼리 Unnesting의 이점 = 469
  (4) 서브쿼리 Unnesting 기본 예시 = 469
  (5) Unnesting된 쿼리의 조인 순서 조정 = 472
  (6) 서브쿼리가 M쪽 집합이거나 Nonunique 인덱스일 때 = 473
  (7) 필터 오퍼레이션과 세미조인의 캐싱 효과 = 477
  (8) Anti 조인 = 480
  (9) 집계 서브쿼리 제거 = 482
  (10) Pushing 서브쿼리 = 484
 03. 뷰 Merging = 490
  (1) 뷰 Merging 이란? = 490
  (2) 단순 뷰(Simple View) Merging = 491
  (3) 복합 뷰(Complex View) Merging = 493
  (4) 비용기반 쿼리 변환의 필요성 = 495
  (5) Merging 되지 않은 뷰의 처리방식 = 496
 04. 조건절 Pushing = 499
  (1) 조건절 Pushing = 501
  (2) 조건절 Pullup = 505
  (3) 조인 조건 Pushdown = 507
 05. 조건절 이행 = 514
 06. 조인 제거 = 524
 07. OR-Expansion = 527
  (1) OR-Expansion 기본 = 527
  (2) OR-Expansion 브랜치별 조인 순서 최적화 = 529
  (3) 같은 컬럼에 대한 OR-Expansion = 530
  (4) nvl/decode 조건식에 대한 OR-Expansion = 533
 08. 공통 표현식 제거 = 535
 09. Outer 조인을 Inner 조인으로 변환 = 538
 10. 실체화 뷰 쿼리로 재작성 = 540
 11. 집합 연산을 조인으로 변환 = 544
 12. 기타 쿼리 변환 = 546
  (1) 조인 컬럼에 IS NOT NULL 조건 추가 = 546
  (2) 필터 조건 추가 = 551
  (3) 조건절 비교 순서 = 553
Chapter 05 소트 튜닝
 01. 소트 수행 원리 = 572
  (1) 소트 수행 과정 = 572
  (2) 소트 오퍼레이션 측정 = 573
  (3) Sort Area = 576
  (4) 소트 튜닝 요약 = 580
 02. 소트를 발생시키는 오퍼레이션 = 581
  (1) Sort Aggregate = 581
  (2) Sort Order By = 581
  (3) Sort Group By = 582
  (4) Sort Unique = 588
  (5) Sort Join = 591
  (6) Window Sort = 592
 03. 데이터 모델 측면에서의 검토 = 592
 04. 소트가 발생하지 않도록 SQL 작성 = 598
 05. 인덱스를 이용한 소트 연산 대체 = 602
  (1) Sort Order By 대체 = 602
  (2) Sort Group By 대체 = 604
  (3) 인덱스가 소트 연산을 대체하지 못하는 경우 = 605
 06. Sort Area를 적게 사용하도록 SQL 작성 = 608
  (1) 소트를 완료하고 나서 데이터 가공하기 = 608
  (2) Top-N 쿼리 = 609
  (3) 분석함수에서의 Top-N 쿼리 = 613
 07. Sort Area 크기 조정 = 615
  (1) PGA 메모리 관리 방식의 선택 = 616
  (2) 자동 PGA 메모리 관리 방식 하에서 크기 결정 공식 = 616
  (3) 수동 PGA 메모리 관리 방식으로 변경 시 주의사항 = 618
  (4) PGA_AGGREGATE_TARGET의 적정 크기 = 619
  (5) Sort Area 할당 및 해제 = 620
Chapter 06 파티셔닝
 01. 테이블 파티셔닝 = 624
  (1) 파티션 기본 구조 = 625
  (2) Range 파티셔닝 = 629
  (3) 해시 파티셔닝 = 630
  (4) 리스트 파티셔닝 = 632
  (5) 결합 파티셔닝 = 633
  (6) 11g에 추가된 파티션 유형 = 636
 02. 파티션 Pruning = 638
  (1) 기본 파티션 Pruning = 638
  (2) 서브쿼리 Pruning = 645
  (3) 조인 필터 Pruning = 648
  (4) SQL 조건절 작성 시 주의사항 = 654
 03. 인덱스 파티셔닝 = 657
  (1) 인덱스 파티션 유형 = 657
  (2) 로컬 파티션 인덱스 = 659
  (3) 비파티션 인덱스 = 660
  (4) 글로벌 파티션 인덱스 = 660
  (5) Prefixed vs. Nonprefixed = 662
  (6) 파티션 인덱스 구성 예시 = 663
  (7) 글로벌 파티션 인덱스의 효용성 = 668
  (8) 로컬 Nonprefixed 파티션 인덱스의 효용성 = 669
  (9) 액세스 효율을 고려한 인덱스 파티셔닝 선택 기준 = 673
  (10) 인덱스 파티셔닝 제약을 고려한 데이터베이스 설계 = 676
Chapter 07 병렬 처리
 01. 기본 개념 = 682
  (1) Query Coordinator와 병렬 서버 프로세스 = 682
  (2) Intra - Operation Parallelism과 Inter - Operation Parallelism = 684
  (3) 테이블 큐 = 685
  (4) IN-OUT 오퍼레이션 = 688
  (5) 데이터 재분배 = 690
  (6) Granule = 692
  (7) 병렬 처리 과정에서 발생하는 대기 이벤트 = 694
 02. 병렬 Order By와 Group By = 698
  (1) 병렬 Order By = 698
  (2) 병렬 Group By = 700
 03. 병렬 조인 = 706
  (1) 둘 다 같은 기준으로 파티셔닝된 경우 - Full Partition Wise 조인 = 707
  (2) 둘 중 하나만 파티셔닝된 경우 - Partial Partition Wise 조인 = 709
  (3) 둘 다 파티셔닝되지 않은 경우 - 동적 파티셔닝 = 710
  (4) 둘 다 파티셔닝되지 않은 경우 - Broadcast 방식 = 715
 04. PQ_DISTRIBUTE 힌트 = 717
  (1) pq_distribute 힌트의 용도 = 717
  (2) 구문 이해하기 = 719
  (3) 분배방식 지정 = 720
  (4) pq_distribute 힌트를 이용한 튜닝 사례 = 721
 05. 병렬 처리에 관한 기타 상식 = 724
  (1) Direct Path Read = 724
  (2) 병렬 DML = 724
  (3) 병렬 인덱스 스캔 = 726
  (4) 병렬 NL 조인 = 727
  (5) 병렬 쿼리와 스칼라 서브쿼리 = 731
  (6) 병렬 쿼리와 사용자 정의 함수 = 734
  (7) 병렬 쿼리와 ROWNUM = 740
  (8) 병렬 처리 시 주의사항 = 742
찾아보기 = 744

관련분야 신착자료