목차 일부
이 책을 이용하는 법
1 Oracle Wait Interface 소개 ... 1
Ratio-based 오라클 튜닝 ... 2
Cache Hit Ratio는 왜 비효율적인가? ... 3
Wait Interface 기반의 오라클 튜닝 ... 5
OWI의 철학 ... 6
데이터베이스 응답시간 기반의 튜닝 모델 ... 8
패러다임 ...
더보기
목차 전체
이 책을 이용하는 법
1 Oracle Wait Interface 소개 ... 1
Ratio-based 오라클 튜닝 ... 2
Cache Hit Ratio는 왜 비효율적인가? ... 3
Wait Interface 기반의 오라클 튜닝 ... 5
OWI의 철학 ... 6
데이터베이스 응답시간 기반의 튜닝 모델 ... 8
패러다임 이동 ... 11
요약 ... 13
2 Oracle Wait Interface 구성 요소 ... 15
대기이벤트(Wait Event)란 무엇인가? ... 16
OWI 구성요소 ... 17
V$EVENT_NAME 뷰 ... 18
V$SYSTEM_EVENT 뷰 ... 20
V$SESSION_EVENT 뷰 ... 25
V$SESSION_WAIT 뷰 ... 27
10046 Trace Event - 확장된 SQL 트레이스 ... 30
10046 Trace Event 사용법 ... 31
자신의 세션을 트레이스 하기 ... 32
다른 사용자의 세션 트레이스 하기 ... 33
트레이스 파일 찾기 ... 36
트레이스 파일의 내용 ... 36
오라클 10g 릴리즈 1에서 도입된 새로운 OWI 뷰들 ... 38
V$SESSION_WAIT_HISTORY 뷰 ... 38
V$SYSTEM_WAIT_CLASS 뷰 ... 40
V$SESSION_WAIT_CLASS 뷰 ... 41
V$EVENT_HISTOGRAM 뷰 ... 41
대기이벤트 유형 ... 43
OWI의 한계점 ... 46
CPU 통계치 부재(No CPU Statistics) ... 46
End-to-End 가시성의 부재(No End-to-End Visibility) ... 46
성능 이력 데이터의 부재(No Historical Data) ... 47
부정확성(Inaccuracies) ... 47
요약 ... 49
3 일반적인 대기이벤트들 ... 51
일반적인 대기이벤트들에 대한 소개 ... 52
buffer busy waits ... 52
control file parallel write ... 53
db file parallel read ... 55
db file parallel write ... 56
db file scattered read ... 56
db file sequential read ... 57
db file single write ... 58
direct path read ... 58
direct path write ... 59
enqueue ... 60
free buffer waits ... 61
latch free ... 62
library cache pin ... 63
library cache lock ... 64
log buffer space ... 65
log file parallel write ... 65
log file sequential read ... 66
log file switch (archiving needed) ... 66
log file switch (checkpoint incomplete) ... 67
log file switch completion ... 67
log file sync ... 68
SQL*Net message from client ... 68
SQL*Net message to client ... 69
오라클 RAC환경에서의 일반적인 대기이벤트 ... 70
global cache cr request ... 70
buffer busy global cache ... 71
buffer busy global cr ... 72
global cache busy ... 72
global cache null to x ... 73
global cache null to s ... 73
global cache s to x ... 74
global cache open x ... 74
global cache open s ... 75
row cache lock ... 75
CPU와 기타 통계정보 추적(Tracking) ... 76
요약 ... 79
4 OWI 모니터링 및 성능 데이터 수집 방법들 ... 81
왜 성능 데이터의 이력이 중요한가? ... 82
빠르고 정확한 근본원인(root cause)의 분석 ... 83
왜 10046 트레이스 이벤트는 성능 데이터 수집기로 적합하지 않은가? ... 84
왜 Statspack은 성능 데이터수집기로 적합하지 않은가? ... 85
성능 데이터 수집기로서의 데이터베이스 로그오프 트리거 ... 86
PL/SQL 프로시저를 이용한 성능 데이터 샘플링 ... 90
성능 데이터의 소스 ... 91
샘플링 주기 ... 92
레파지토리(Repositories) ... 95
모니터링 대상 이벤트들 ... 96
db file sequential read 와 db file scattered read ... 98
latch free ... 99
direct path read ... 99
direct path write ... 101
enqueue ... 102
buffer busy waits ... 103
free buffer waits ... 104
library cache pin ... 104
장단점 비교 ... 105
SQL 수행없이 직접 SGA를 액세스하여 성능 데이터 샘플링 하기 ... 106
요약 ... 106
5 I/O와 관련된 일반적인 대기이벤트 분석 ... 109
db file sequential read ... 110
일반적인 원인, 진단 및 조치방법들 ... 111
인덱스에 대한 순차적 읽기(Sequential Reads) ... 115
테이블에 대한 순차적 읽기(Sequential Reads) ... 116
시스템 레벨 진단 ... 117
db file scattered read ... 118
일반적인 원인, 진단 및 조치방법들 ... 119
왜 Full Table Scan을 수행할 때 db file sequential read 대기이벤트가 발생되는가? ... 123
왜 Full Scan 수행시 MBRC 보다 적은 블록을 요청하는가? ... 124
DB_FILE_MULTIBLOCK_READ_COUNT (MBRC) 설정 ... 125
왜 Physical I/O 비용이 비싼가? ... 126
direct path read ... 127
일반적인 원인, 진단 및 조치방법들 ... 127
중요한 파라미터 ... 133
direct path write ... 135
일반적인 원인, 진단 및 조치방법들 ... 135
db file parallel write ... 137
일반적인 원인, 진단 및 조치방법들 ... 137
log file parallel write ... 142
일반적인 원인, 진단 및 조치방법들 ... 142
control file parallel write ... 145
일반적인 원인, 진단 및 조치방법들 ... 145
요약 ... 147
6 락(lock) 관련 대기이벤트 분석 ... 149
latch free ... 150
래치(latch)란 무엇인가? ... 150
래치(latch)와 락(lock)의 차이점 ... 152
래치 패밀리(latch family) ... 152
래치 획득(latch acquisition) ... 152
래치 클래스(latch classification) ... 154
latch free 대기이벤트가 의미하는 것은 무엇인가? ... 156
래치 실패 위치(latch miss location) ... 157
오라클 10g Release 1에서의 래치들 ... 158
일반적인 원인, 진단 및 조치방법들 ... 158
shared pool 과 library cache 래치들 ... 159
shared pool 과 library cache 래치들의 경합 - 파싱(parsing) ... 161
shared pool 래치에 대한 경합 - 너무 큰 shared pool ... 165
library cache 래치에 대한 경합 - 높은 버전 카운트(Version Count)를 가진 문장 ... 166
cache buffers chains 래치들 ... 168
cache buffers chains 래치에 대한 경합 - 비효율적인 SQL문 ... 171
cache buffers chains 래치에 대한 경합 - 핫 블록들(Hot Blocks) ... 172
cache buffers chains 래치에 대한 경합 - 긴 해쉬 체인들(Long Hash Chains) ... 175
cache buffers lru chain 래치들 ... 176
row cache objects 래치들 ... 178
enqueue ... 179
enqueue 리소스란 무엇인가? ... 179
enqueue lock이란 무엇인가? ... 183
enqueue 아키텍처 ... 184
enqueue 유형과 모드 디코딩(Decoding) ... 185
일반적인 원인, 진단 및 조치방법들 ... 187
TX enqueue에 대한 대기(Mode 6) ... 188
TX enqueue에 대한 대기(Mode 4) - ITL 부족 ... 189
TX enqueue에 대한 대기(Mode 4) - Unique Key 충돌 ... 191
TX enqueue에 대한 대기(Mode 4) - 비트맵 인덱스 엔트리 ... 192
ST enqueue에 대한 대기 ... 192
TM enqueue에 대한 대기(Mode 3) ... 193
buffer busy waits ... 194
일반적인 원인, 진단 및 조치방법들 ... 195
데이터블록(클래스 1)에 대한 경합(원인코드130) ... 198
데이터블록(클래스 1)에 대한 경합(원인코드 220) ... 199
데이터 세그먼트 헤더(클래스 4)에 대한 경합 ... 200
언두 세그먼트 헤더(클래스 17)에 대한 경합 ... 202
언두 블록(클래스 18)에 대한 경합 ... 203
시스템 레벨 진단 ... 203
요약 ... 206
7 지연과 관련된 일반적인 대기이벤트 분석 ... 207
log file sync ... 208
일반적인 원인, 진단 및 조치방법들 ... 208
높은 커밋 발생률 ... 211
느린 I/O 서브시스템 ... 212
커다란 로그 버퍼 ... 213
log buffer space ... 215
일반적인 원인, 진단 및 조치방법들 ... 215
너무 작은 로그 버퍼 ... 215
느린 I/O 서브시스템 ... 215
free buffer waits ... 216
일반적인 원인, 진단 및 조치방법들 ... 216
비효율적인 SQL문 ... 217
불충분한 DBWR 프로세스들 ... 218
느린 I/O 서브시스템 ... 219
지연된 블록 클린아웃(Delayed Block Cleanout) ... 219
작은 버퍼 캐쉬 ... 220
write complete waits ... 220
일반적인 원인, 진단 및 조치방법들 ... 220
log file switch completion ... 221
일반적인 원인, 진단 및 조치방법들 ... 222
log file switch (checkpoint incomplete) ... 222
일반적인 원인, 진단 및 조치방법들 ... 223
요약 ... 223
8 Real Application Clusters 환경에서의 대기이벤트 ... 225
왜 Real Application Clusters(RAC)의 대기이벤트는 특별한가? ... 226
Real Application Cluster에서의 글로벌 버퍼 캐쉬 ... 227
병렬 캐쉬 관리(Parallel Cache Management) ... 227
CR(Consistent Read) 처리절차 ... 229
새로운 버퍼 캐쉬 관리방법 ... 230
Pings와 False Pings ... 231
캐쉬 퓨전(Cache Fusion) ... 232
Light Work Rule ... 234
_fairness_threshold ... 234
Global Cache 대기들 ... 235
global cache or request ... 235
캐쉬 전송에 사용되는 INTERCONNECT를 찾는 방법 ... 236
올바른 INTERCONNECT 프로토콜을 사용하기 위해 오라클 바이너리를 Relinking 하는 방법 ... 237
Global Cache 대기 처리절차 ... 238
Global Cache 통계정보 ... 239
버퍼 캐쉬내의 PI 버퍼 와 CR 버퍼 복제본을 줄이는 방법 ... 239
global cache busy ... 240
오라클 10g에서의 RAC 대기이벤트 강화 ... 241
Enqueue waits ... 243
가장 일반적인 enqueue들 ... 243
CU Enqueue ... 244
CF Enqueue ... 244
HW Enqueue ... 246
PE Enqueue ... 247
Sequence Enqueues: SQ 와 SV ... 248
TX Enqueue ... 248
요약 ... 248
Index ... 249
더보기 닫기