7. Response Time Analysis 방법론과 OWI
2010.06.13 09:20
▣ 대기이벤트(Wait Event) 기반 성능 관리 방법론
(= Response Time Analysis 성능 관리 방법론)
- 대기이벤트를 기반으로 세션 혹은 시스템 전체에 발생하는 병목현상과 그 원인을 찾아 문제를 해결하는 방법
- 1999년 06월 YAPP(Yes Another Performance Profiling Method) 오라클 기술백서
- Response Time = Service Time(CPU Time) + Wait Time(Queue Time)
- OWI - Response Time Analysis 방법론을 지원하는 오라클 제공 기능 및 인터페이스.
▣ OWI 시나리오 예
- (SQL 문) - range를 정해주고 20개를 동시에 Parallel 실행
insert into t1
select /*+ ordered use_nl(t3) */ seq.nextval, t2.*, t3.*
from t2, t3
where t2.key=t3.key and t2.col between :range1 and :range2;
- 속도저하의 원인 1 :
(분석) db file scattered read 이벤트가 wait time의 대부분 차지함.
(원인) Full Table Scan이 원인
(해결) Index Scan 하도록 튜닝
- 속도저하의 원인 2 : 1번 해소 후 새로 발생 - 그림 3-5
(분석) buffer busy wait와 latch : cache byffers chain 이벤트 발생
(원인) 캐시버퍼에 대한 읽기 요청 증가
(해결) NL 조인 -> 해시조인으로 변경
- 속도저하의 원인 3 : 2번 해소 후 새로 발생 - 그림 3-6, 그림 3-7
(분석) log buffer space 이벤트 발생, enq:SQ - contention 발생
(원인) insert 처리 부분에서 경합, insert에 의한 Redo 로그 버퍼에 공간 부족
-> log buffer space 이벤트 발생
sequence table 경합으로 -> enq:SQ - contention 발생
(해결) Redo 로그버퍼 크기 늘리기, sequence 캐시 사이즈 늘리기
▣ 대기이벤트
- 대기이벤트 종류 : 10g 890개, 11g 960개
- 대기이벤트 정보 수집 방법 : Statspack, AWR
- 튜닝방식의 변화 : 시스템 레벨 SQL 트레이스에서 AWR, v$sql 뷰 분석
- 이벤트명과 파라메터를 통하여 원인분석
-> 사용자 lock, unique key 중복, 인덱스분할, ITL, sequence 경합 등 분석
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
47 |
2. 트랜잭션 수준 읽기 일관성
![]() | 휘휘 | 2010.06.06 | 20213 |
46 | 3. 비관적 vs. 낙관적 동시성 제어 | 휘휘 | 2010.06.06 | 8329 |
45 | 4. 동시성 구현 사례 | 토시리 | 2010.06.06 | 11079 |
44 |
5. 오라클 Lock
![]() | 휘휘 | 2010.06.06 | 26512 |
» |
7. Response Time Analysis 방법론과 OWI
![]() | balto | 2010.06.13 | 8202 |
42 | 8. Statspack / AWR | balto | 2010.06.13 | 12910 |
41 | 9. ASH(Active Session History) | 실천하자 | 2010.06.13 | 15731 |
40 | 11. End-To-End 성능관리 | 휘휘 | 2010.06.13 | 8248 |
39 |
12. 데이터베이스 성능 고도화 정석 해법
![]() | 휘휘 | 2010.06.13 | 7248 |
38 |
5. V$SYSSTAT
[1] ![]() | 토시리 | 2010.06.13 | 9977 |
37 | 10. V$SQL | 실천하자 | 2010.06.13 | 12803 |
36 | 6. V$SYSTEM_EVENT | 토시리 | 2010.06.14 | 6641 |
35 |
3. 라이브러리 캐시 구조
![]() | balto | 2010.06.27 | 9957 |
34 |
4. 커서 공유
![]() | balto | 2010.06.27 | 9324 |
33 |
1. SQL과 옵티마이저
![]() | 휘휘 | 2010.06.27 | 7326 |
32 |
2. SQL 처리과정
![]() | 휘휘 | 2010.06.27 | 20929 |
31 | 4장. 라이브러리 캐시 최적화 원리 | 휘휘 | 2010.06.27 | 7032 |
30 | 5. 바인드 변수의 중요성 | 실천하자 | 2010.06.27 | 11862 |
29 |
6. 바인드 변수의 부작용과 해법
![]() | 실천하자 | 2010.06.27 | 14868 |
28 |
7. 세션 커서 캐싱
![]() | 토시리 | 2010.06.29 | 10711 |