메뉴 건너뛰기

bysql.net

5. V$SYSSTAT

2010.06.14 08:39

토시리 조회 수:9848

오라클은 성능 측정 지표로서 활용 가능한 항목들을 선정하여 SQL이 실행되는 동안 그 항목들의 누적통계치를저장한다.

  1. v$sysstat : 인스턴스 기동 후 현재까지 누적된 수행 통계치를 시스템 레벨로 확인.
  2. v$sesstat : 개별 세션별로 확인
  3. v$mystat : 현재 접속해 있는 본인 세션에 대헌 수행통계치를 확인.

실행시켜본 결과를 살짝 보면 다음과 같다.

05-191.JPG


05-191-2.JPG


05-191-3.JPG


단지, 결과의 숫자만으로는 의미를 알기 힘들다.



(1)시스템 수행 통계 수집 및 분석


위에서 봤듯이, v$sysstat이나 v$sesstat에 나타난 값만으로는 의미있는 결과를 알기 힘들다.

이들은 두 구간사이의 변화량을 분석하는 것으로 어떤 일들이 발생했는가를 판명하는 것이다.

다음과 같은 방법으로 정보수집 스크립트를 만들수도 있다. (해당 SID를 알아야 한다.)


수집용 테이블을 생성한다.

create table sess_stat

as

select 1 no, statistic#, value

from v$sesstat

where sid = 해당SID값;


수집하려는 배치작업이 종료된 후,. 별도 세션에서 다음의 insert문을 실행한다.

insert into sess_stat

select 2 no, statistic#, value

from v$sesstat

where sid = 해당SID값;


다음의 스크립트로 두 구간사이의 증분을 구해 상태를 알아볼수 있다.

05-193.jpg


위의 insert문을 스케줄러에 등록하여 주기적으로 실행하게 하면 시간대별의 Load Profiling이 가능해진다.

잘 이용해 보시라.



(2)Ratio 기반 성능 분석


위에서 수집된 자료를 이용하여 전반적인 DB건강상태를 체크할수 있다.

아래는 주로이용 되는 항목들이다. (공유리소스사용빈도, 경합발생비율 등)

1. Buffer NoWait %

버퍼블록을 읽으려 할 때, buffer busy waits대기 없이 곧바로 읽기에 성공한 비율을 나타냄.


2. Redo NoWait %

Redo로그를 기록할 공간을 요청하지 않고 곧바로 Redo 엔트리를 기록한 비율을 나타냄.


3. Buffer Hit %

디스크 읽기를 수반하지 않고 버퍼캐시에서 블록찾기에 성공한 비율을 나타냄.


4. Latch Hit %

래치 경합없이 첫번째 시도에서 곧바로 래치를 획득한 비율을 나타냄.


5. Library Hit %

파싱부하와 관련 있는 항목.

라이브러리 캐시에 이미 적재된 SQL커서를 생행하거나 오브젝트정보를 읽으려할 때 커서 또는 오브젝트정보가 Heap영역에서 찾아지는 비율을 나타냄.


6. Soft Parse %

파싱부하와 관련 있는 항목.

실행계획이 라이브러리 캐시에서 찾아져 하드파싱을 일으키지 않고 SQL을 수행한 비율을 나타냄.


7. Execute to Parse %

파싱부하와 관련 있는 항목.

Parse Call없이 곧바로 SQL을 수행한 비율. 즉, 커서를 애플리케이션에서 캐싱한 채 반복 수행한 비율을 나타냄.


8. Parse CPU to Parse Elapsd %

파싱부하와 관련 있는 항목.

파싱 총 소요 시간 중 CPU time이 차지한 비율. 파싱에 소요된 시간 중 실제 일을 수행한 시간비율을 나타냄.


9. % Non-Parse CPU

파싱부하와 관련 있는 항목.

SQL을 수행하면서 사용한 전체 CPU time중 파싱 이외의 작업이 차지한 비율을 나타냄.


10. In-memory Sort %

전체 소트 수행횟수에서 In-Memory방식으로 소트한 비율을 나타냄.


11. Memory Usage %

Shared Pool내에서 현재 사용중인 메모리 비중을 나타냄.


12. % SQL with executions>1

전체 SQL 개수에서 두번이상 수행된 SQL이 차지하는 비중을 나타냄.


13. % Memory for SQL w/exec>1

전체 SQL이 차지하는 메모리 중 두번이상 수행된 SQL이 차지하는 메모리 비중을 나타냄.





<03장 5절 끝>

번호 제목 글쓴이 날짜 조회 수
27 9. ASH(Active Session History) 실천하자 2010.06.14 15607
26 8. Statspack / AWR balto 2010.06.13 12767
25 7. Response Time Analysis 방법론과 OWI file balto 2010.06.13 8066
24 5. 오라클 Lock file 휘휘 2010.06.07 26368
23 4. 동시성 구현 사례 토시리 2010.06.07 10939
22 3. 비관적 vs. 낙관적 동시성 제어 휘휘 2010.06.07 8210
21 2. 트랜잭션 수준 읽기 일관성 file 휘휘 2010.06.07 19568
20 4. DBMS_XPLAN 패키지 balto 2010.06.06 10461
19 3. SQL 트레이스 file balto 2010.06.06 21175
18 3장. 오라클 성능 관리 운영자 2010.06.06 6694
17 2. AutoTrace 실천하자 2010.06.06 8597
16 1. Explain Plan 실천하자 2010.06.06 14663
15 2장. 트랜잭션과 Lock 운영자 2010.06.01 6895
14 6. 문장수준 읽기 일관성 file 토시리 2010.06.01 10432
13 1. 트랜잭션 동시성 제어 실천하자 2010.05.31 8631
12 5. Undo file 토시리 2010.05.31 18653
11 11. Shared Pool file 실천하자 2010.05.31 18511
10 8. 블록 클린아웃 휘휘 2010.05.31 12283
9 7. Consistent vs. Current 모드 읽기 휘휘 2010.05.31 10537
8 10. 대기 이벤트 balto 2010.05.30 8011