책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 데이터베이스 프로그래밍 > Oracle
· ISBN : 9791185890012
· 쪽수 : 384쪽
· 출판일 : 2014-08-29
책 소개
목차
PART 1 상상도 할 수 없었던 성능 분석 테크닉 1
CHAPTER 1 엉망진창인 오라클 성능 분석 2
대기 이벤트는 ‘악’인가? 2
오라클의 세 가지 기본 동작 모델 3
성능 측정 방법과 평균치/합계치 8
서버 프로세스와 백그라운드 프로세스 10
대기 이벤트란? 13
일반적인 오라클 성능 분석 방법과 문제점① ―― 합계와 평균의 마술 18
일반적인 오라클 성능 분석 방법의 문제점② ―― 순간적으로 발생하는 큐의 마술 19
일반적인 오라클 성능 분석 방법의 문제점③ ―― 계측 포인트의 마술 22
CHAPTER 2 오라클에서 제공하는 도구로 오라클의 상태를 정확히 아는 방법 27
지연된 순간과 그 상황을 포착하는 방법 27
Automatic Workload Repository(또는 STATSPACK)의 효과 47
SQL 트레이스의 기능 54
오라클 Net 트레이스 57
CHAPTER 3 OS와 I/O는 성능 저하에 어떻게 영향을 미칠까? 61
오라클의 I/O·네트워크·OS의 상관 관계 61
OS의 가동 상태와 오라클에 주는 영향 67
OS 메모리 고갈 72
DB의 성능과 디스크 I/O 80
I/O 성능 계측 방법 83
정리 89
PART 2 오라클의 두뇌를 살펴보자 - 옵티마이저 철저 분석 93
CHAPTER 4 비용 기반 옵티마이저의 기본 기능 94RBO와 CBO의 장단점 94
SQL문 처리에서 옵티마이저의 역할 96
옵티마이저를 이해하기 위한 포인트 100
CHAPTER 5 CBO는 무엇을 보고 어떻게 판단하는가 101
CBO의 액세스 패스 선택 방법 101
CBO와 히스토그램 106
CBO와 바인드 변수 120
바인드 피크 121
CURSOR_SHARING 127
CPU + I/O 비용 모델 129
CBO와 풀 테이블 스캔 135
CBO와 캐시 효율 138
CBO와 파라미터 140
CBO와 조인 순서 143
CHAPTER 6 옵티마이저 통계 관리 147
자동 통계 수집 147
통계 재수집의 위험과 이력 보존 158
CHAPTER 7 실행 계획 고정과 자동 튜닝 옵티마이저 활용 방법 167
옵티마이저 힌트 167
플랜 스태빌리티 168
자동 튜닝 옵티마이저 173
CBO를 제대로 사용하기 위해서는 176
정리 178
PART 3 성능이 비약적으로 향상되는 비전의 커넥션 풀링 179
CHAPTER 8 커넥션 풀링의 구조 180
커넥션이란? 180
커넥션 풀링의 구현 기술 188
커넥션 풀링의 부수적인 기술 206
CHAPTER 9 자바와 닷넷에서 사용하는 커넥션 풀링의 선택 211
자바에서의 커넥션 풀링 211
커넥션 풀링 선택 기준 216
자바 애플리케이션과 커넥션 풀링 218
커넥션 풀링 교체 223
닷넷의 커넥션 풀링 228
끝으로 234
PART 4 엔터프라이즈 매니저, 이렇게도 사용할 수 있다! 235
CHAPTER 10 엔터프라이즈 매니저는 도움이 될까? 236
실제 시스템에서의 경험 236
만약 엔터프라이즈 매니저가 없었다면 238
엔터프라이즈 매니저의 사용처 239
CHAPTER 11 엔터프라이즈 매니저 개요 241
데이터베이스 컨트롤과 그리드 컨트롤 241
AWR 243
ADDM 243
권고자 244
CHAPTER 12 개발 단계에서의 엔터프라이즈 매니저의 실전적 활용법 247
설계·개발 단계에서 DBA 참가의 중요성 247
단위 테스트 시의 SQL 튜닝 권고자에 의한 품질 체크 248
성능 테스트 시 ADDM에 의한 분석·평가의 이용 259
정리 268
PART 5 오라클 문자 깨짐에 철저한 대책을 세우자 269
CHAPTER 13 문자 코드 체계의 역사를 알아본다 270
체계적인 지식의 소중함 270
문자 세트와 인코딩의 차이 270
세계 최초의 문자 코드 ‘ASCII’ 272
메인 프레임에서 사용되는 ‘EBCDIC’ 273
각 언어권에서 ASCII를 확장한 ‘ISO 646’ 274
각 언어 문자의 혼재 표현을 실현한 ‘ISO 2022’ 275
한글 코드 종류 276
현재 오라클에서 사용할 수 있는 한글 문자 세트 277
문자 코드의 세계 표준(유니코드) 279
정리 284
CHAPTER 14 오라클 + 자바 + 웹 애플리케이션의 문자 깨짐 대책 285
오라클 데이터베이스 문자 세트 285
오라클과 자바 문자 코드의 차이 288
3 tier 구조 웹 애플리케이션의 문자 코드 변환 293
어떤 문자 세트를 선택해야 하는가? 294
문자 코드를 확인하기 위해서는 295
데이터베이스 문자 세트에 관한 Q&A 297
정리 300
PART 6 오라클의 올바른 업그레이드 방향 301
CHAPTER 15 업그레이드 기초 지식 302
시작하며 302
업그레이드를 생각해야 하는 타이밍 303
업그레이드에 필요한 절차 306
업그레이드의 장점 308
CHAPTER 16 업그레이드 실행 계획 310
업그레이드에 관한 지식 310
업그레이드를 운영에 통합하자! 310
시스템 계획 단계에서부터 업그레이드를 생각하자! 315
시스템의 라이프사이클을 신경 쓰자! 316
CHAPTER 17 다섯 가지 업그레이드 방법 322
DBUA를 이용한 업그레이드 323
Data Pump 유틸리티를 이용한 업그레이드 326
데이터 언로드 도구 + SQL*Loader를 이용한 업그레이드 328
DB 링크 연결을 이용한 업그레이드 331
오라클 GoldenGate를 이용한 업그레이드 333
CHAPTER 18 업그레이드 방법 선택 기준 336
다운 타임 336
비용 340
데이터베이스 구성 변경 345
고려해야 할 제약 사항 346
각 방법 정리 353
끝으로 356
찾아보기 357
저자소개
책속에서
클라이언트 측면에서 보면, 서버 프로세스가 일을 도맡아 처리하는 주인공이라는 것은 변하지 않습니다. 서버 프로세스는 데이터를 변경한 후 로그 버퍼에 REDO 로그를 씁니다. 이때 LGWR은 비동기적으로 REDO 로그를 REDO 로그 파일에 정기적으로 기록하지만, 이 처리의 수행으로 인해 서버 프로세스가 대기하는 경우는 없습니다.
성능 문제가 DB 내에서 발생한 것인지 DB 이외의 장소에서 발생한 것인지를 구분하는 것은 매우 어려우며, 이것이 DB 엔지니어의 큰 고민 중 하나라고 볼 수 있습니다. 일반적으로 시스템의 성능이 악화되었을 때 ‘DB에 문제가 발생한 것은 아닌가?’라는 얘기를 들은 적이 있지 않으신지요? 그러나 실제로는 DB보다 앞 단에서 지연이 발생하여 성능 저하를 일으킨 경우가 많습니다. 지연이 발생한 순간의 정보는 이런 문제를 정확히 구분짓고 싶을 때 유용합니다.
기본적으로 옵티마이저는 칼럼값 안에 최솟값과 최댓값 사이의 값이 균등하게 분포되고, 모든 값은 같은 수만큼 존재한다고 가정합니다. 그러므로 실제 값이 편중되어 있을 때 잘못된 액세스 패스를 선택할 수 있습니다. 이는 옵티마이저 통계를 수집할 때 칼럼값 히스토그램을 생성하는 것으로 올바른 액세스 패스를 선택할 가능성을 높일 수 있습니다.