사례 연구 2 : 특정 시점에 SQL 수행 성능 저하 원인 파악

: CPU 100% 원인 분석 ==> 일부 세션에 대한 SQL 추적 파일 생성 설정

원인

변수 값에 의한 SLQ 수행 저하

  • 패치, 실행, 파스시 사용한 CPU 순으로 정렬 ( NO=aggregate )

 tkprof orcl_ora_3242.trc tkprof_out.txt sort='(FCHCPU,EXECPU,PRSCPU)' aggregate=NO

  • 동일 문장이나, 다른 CURSOR 를 가질수 있음

PARSING IN CURSOR #4 len=58 dep=0 uid=59 oct=3 lid=59 tim=1462465357869 hv=3866278416 ad='adf220f8'
PARSING IN CURSOR #3 len=58 dep=0 uid=59 oct=3 lid=59 tim=1462478177580 hv=3866278416 ad='adf220f8'

  • 커서 번호가 5번의 FETCH 중, CPU 수행 시간으로 정렬 ...

[tgdom]tguniz:/app/oracle/admin/tgdom/udump> grep "FETCH" tgdom_ora_23926.trc
FETCH #13:c=30000,e=32284,p=0,cr=2993,cu=0,mis=0,r=1,dep=0,og=1,tim=1371386316347
FETCH #13:c=0,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,tim=1371386324478

[tgdom]tguniz:/app/oracle/admin/tgdom/udump> grep "FETCH" tgdom_ora_23926.trc |cut -f1 -d,
FETCH #13:c=30000
FETCH #13:c=0

[tgdom]tguniz:/app/oracle/admin/tgdom/udump> grep "FETCH" tgdom_ora_23926.trc |cut -f1 -d,| cut -f2 -d:
c=30000
c=0

[tgdom]tguniz:/app/oracle/admin/tgdom/udump> grep "FETCH" tgdom_ora_23926.trc |cut -f1 -d,| cut -f2 -d:|sort -nt= -k 2
c=0
c=30000