2. Wait Event 확인
• v$system_event : Instance 가동 후 현재까지 누적된 Event 발생 현황
• v$session_event : 개별 Session별로 누적된 Event 발생 현황
• v$sesstion_wait : 현재 진행중이거나 바로 직전에 발생했던 Event 정보
SELECT sid, event, wait_time, seconds_in_wait, state,
p1text || '->' || p1 || ',' || p2text || '->' || p2 || ',' || p3text || '->' || p3 param
FROM v$session_wait
WAIT_TIME > 0 : 마지막 Wait Event를 대기한 시간
WAIT_TIME = 0 : 이 Event를 현재 대기 중
WAIT_TIME = -1 : 마지막 Wait Event를 대기한 시간이 10ms 미만
WAIT_TIME = -2 : 타이밍이 활성화 되지 않음
3. Response Time Analysis
• Response Time = Service Time + Wait Time
= CPU Time + Queue Time
• CPU Time : Parsing 소요 시간인지, Query 수행 시간인지에 대하여 분석
• Wait Time : 발생한 Wait Event를 분석해 가장 시간을 많이 빼앗긴 Event 중심으로 해결
• OWI (Oracle wait interface) : RTA 방법론을 지원하려고 Oracle이 제공하는 기능과 Interface를 통칭
4. Statspack / AWR
• 구간별 Snapshot을 이용하여 Delta값 (값의 차이)를 이용하여 분석
• Ratio 기반 성능진단
• Wait Event 기반 성능진단
• 자세한 설명은 생략
5. ASH (Active Session History)
• 현재 Active 상태의 Session 정보를 1초에 한번씩 Sampling하여 ASH Buffer에 저장
• SGA Shared Pool에서 CPU당 2MB의 Buffer를 할당받아 Session 정보를 기록
• 1시간 or Buffer의 2/3가 찰 때마다 Disk (AWR)에 기록
SELECT SAMPLE_ID, SAMPLE_TIME, -- Sampling 이 일어난 시간과 Sample ID
SESSION_ID, SESSION_SERIAL#, USER_ID, XID, -- Session, User, Transaction ID
SQL_ID, SQL_CHILD_NUMBER, SQL_PLAN_HASH_VALUE, -- SQL 정보
SESSION_STATE, -- 현재 Session의 상태 : ON CPU, WAITING
QC_INSTANCE_ID, QC_SESSION_ID, -- 병렬 Slave Session인 경우 QC ( Query Coordinator)
BLOCKING_SESSION, BLOCKING_SESSION_SERIAL#, BLOCKING_SESSION_STATUS, -- 현재 Session을 Block하고 있는 Session 정보
EVENT, EVENT#, SEQ#, WAIT_CLASS, WAIT_TIME, TIME_WAITED, -- 현재 발생중인 Wait Event
P1TEXT, P1, P2TEXT, P2, P3TEXT, P3, -- 현재 발생중인 Wait Event의 Parameter
CURRENT_OBJ#, CURRENT_FILE#, CURRENT_BLOCK#, -- 해당 Session에서 현재 참조중인 Object : v$session에서 가져온 값
PROGRAM, MODULE, ACTION, CLIENT_ID -- Application 정보
FROM V$ACTIVE_SESSION_HISTORY