오라클 성능 트러블슈팅의 기초 (2012년)
스냅샷과 프로파일링 0 0 72,458

by 구루비 프로파일링 스냅샷 10046 10053 10032 [2018.09.27]


스냅샵과 프로파일링

질문

오라클 성능 트러블슈팅의 기본 중의 기본, 핵심 중의 핵심은 무엇일까?
필자가 생각하는 정답은 바로 데이터임

오라클 성능 문제를 트러블슈팅하는 과정은 필요한데이터를 체계적으로 수집하고, 수집한 데이터를 기반해서 문제를 해석하고 해결책을 찾는 일련의 과정임

질문

어떤 데이터를 어떻게 수집할 것인가 ?
데이터를 수집하는 체계적인 방법을 가장 먼저 정의 해야함 (필자: 스냅샷/ 프로파일링 데이터 로 분류)

오라클 성능 문제를 해석하는데 필요한 데이터를 분류하는 방법

분류의미예제
스냅샷 데이터특정시점의 상태 데이터를 의미함오늘 아침 10시에 V$SESSTAT뷰를 저장했다면, V$SESSTAT뷰에 대한 스냅샷 데이터를 가지고 있음
프로파일링(트레이스) 데이터특정 구간에서 수행된 작업에 대한 데이터를 의미함오늘 아침 10시부터 10시 10분까지 SQL*Trace를 수행했다면, 10분간의 프로파일링 데이터를 가지고있음

스냅샷 데이터는 공간적인 개념이며, 반면에 프로파일링 데이터는 시간적인 개념으로 이 두 가지 종류의 데이터를 합쳐야 완벽한 그림을 그릴수 있음

오라클이 제공하는 스냅샷/프로파일링 데이터를 정리

분류종류설명
스냅샷 데이터대부분의 딕셔너리 뷰들V$SESSTAT 뷰나 V$SESSION_WAIT뷰 와 같은 뷰들은 인스턴스의 현재상태에 대한 정보를 제공함
AWR 뷰들AWR이 제공하는 대부분의 뷰들은 특정 시점의 스냅샷 데이터들임
* 오라클은 한시간에 한번씩 데이터베이스의 전반적인 상태에 대한 스냅샷을 생성함
* AWR 스냅샷은 많은 수의 뷰들에 대한 스냅샷 데이터로 구성되어 있음
덤프 파일들오라클이 제공하는 덤프 파일들은 대부분 스냅샷 데이터임
* 예를 들어 PGA 힙 덤프(PGA Heap Dump)는 PGA의 현재 상태를 나타내는 스냅샷 데이터임
프로파일링 데이터진단 이벤트들SQL문장의 수행시간 정보를 기록하는 10046진단 이벤트, 옵티마이저가 SQL문장을 최적화하는 과정을 기록하는 10053 진단 이벤트등 은 모두 프로파일링 데이터를 생성함
* 이들 데이터들은 프로세스가 하는 일을 시간 순으로 기록한 것들임
매뉴얼 프로파일링V$SESSION_WAIT 뷰 자체는 스냅샷 데이터에 해당함
하지만 이뷰를 반복적으로 액세스하면 마치 프로파일링을 수행한 것과 비슷한 효과를 얻을 수 있음

스냅샷/프로파일링 데이터에서 의미가 있는 정보를 얻는 방법

분류방법설명
스냅샷 데이터차이(Delta) 값을 구함특정 시점에서의 값 그 자체보다는 시점 A 와 시점 B 사이에 어떤 차이가 있는가가 핵심적인 데이터임
* 가령 Logical Reads가 얼마나 증가하는지, 리두크기는 얼마나 증가하는지 등의 데이터를 얻는 것이 중요함
* AWR 리포트는 두 개의 스냅샷 간의 차이(Delta)값을 효과적으로 보여주는 것을 목적으로 함
프로파일링 데이터집계(Summary)를 수행프로파일링 데이터는 시간 순으로 모든 작업, 혹은 아주 많은 수의 작업을 기록함
* 이 많은 데이터를 일일이 확인하는 것은 어려우며 대신 효과적으로 집계를 함으로써 의미있는 정보를 얻게 됨
* TKPROF 리포트를 사용해 보신 분이라면 그 의미를 직관적으로 이해하실수 있음

내용 요약

  • 오라클 성능 트러블슈팅에 필요한 데이터는 스냅샷 데이터와 프로파일링 데이터로 나눌수 있음
  • 스냅샷 데이터는 특정시점의 상태에 대한 데이터를 의미하며, 차이(Delta) 값을 통해서 의미있는 정보를 얻음
  • 프로파일링 데이터는 특정 시간 구간 내의 작업에 대한 데이터를 의미하며, 집계(Summary)값을 통해 의미있는 데이터를 얻음
"데이터베이스 스터디모임" 에서 2012년에 "오라클 성능 트러블슈팅의 기초 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4098

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입