메뉴 건너뛰기

bysql.net

5. V$SYSSTAT

2010.06.14 08:39

토시리 조회 수:9842

오라클은 성능 측정 지표로서 활용 가능한 항목들을 선정하여 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절 끝>