전체포스팅 낚시이야기 자동차정보 여행/맛집 이슈이야기 기타이야기 재테크정보 취업정보 전문대정보 데이터베이스

SQL을 작성하는 것은 누구나 가능하다. 하지만 성능이 최적화된 SQL은 아무나 작성할수가 없다.

일반 개발자들은 SQL을 작성하며, 어느어느 테이블에서 어떤 데이터를 출력하는데만 집중하지, 이 SQL이 어떻게 내부적으로 작동할것인

가에 대한 고민은 잘 하지 않는편인듯 하다.

본인이 작성한 SQL이 내부적으로 어떤 경로를 통해 어떻게 수행될것인가 하는정보는 SQL TRACE를 통해 조회가 가능하다.

SQL TRACE는 SQL SCRIPT를 수행하며, 발생한 정보를 TRACE 파일에 기록하는데 이는 튜닝의 지표가 되는 요소들 실행계획, 처리에

필요한 시간, 처리중 발생한 I.O의 양이나 wait 상황등에 대한 정보가 기록된다.

따라서, SQL TRACE는 SQL튜닝시 가장 많이 사용되는 도구이며, 강력한 리포트이다. 그럼 실제로 SQL 트레이스를 어떻게 사용하는가

에 대해 포스팅 하겠다.

세션에 트레이스 걸기

1. 아래의 쿼리는 세션레벨로 트레이스 파일의 식별자를 붙이는 작업을 하는 쿼리이다.
   막상 트레이스 파일이 들어있는 폴더로 들어갈 경우 본인의 트레이스 파일이 무엇인지 찾기가 난해하다.
   이럴때 아래와 같이 트레이스 파일의 식별자를 붙이는 작업을 하게되면, 본인의 트레이스파일을 쉽게 찾을수 있다.

   ALTER SESSION SET TRACEFILE_IDENTIFIER='GEO';

2. 트레이스 걸기
   아래의 쿼리는 본인이 접속한 세션에 SQL TRACE가 수행되도록 하는 쿼리이다.
  
   ALTER SESSION SET SQL_TRACE = TRUE;

3. 쿼리수행
   이 단계에서는 SQL TRACE가 수행되고 있는중에 실제로 본인이 작성한 SQL을 수행하여, SQL TRACE에 본인이 작성한 SQL의

  수행내역을  적재하는 단계이다.

4. 트레이스 종료하기
   아래의 SQL은 쿼리수행이 완료되었으므로, SQL TRACE를 종료하는 SQL이다.  

   ALTER SESSION SET SQL_TRACE = FALSE;


트레이스파일 생성위치 확인 SQL

SELECT R.VALUE || '/' || LOWER(T.INSTANCE_NAME) || '_ora_' || LTRIM(TO_CHAR(P.SPID)) || '.trc' 'TRACE_PATH'
    FROM v$process p, v$session s, v$parameter r, v$instance t
   WHERE P.ADDR=S.PADDR
       AND R.NAME='user_dump_desc'
       AND S.SID=(SELECT SID FROM V$MYSTAT WHERE ROWNUM=1);

트레이스파일 생성위치 확인 결과

사용자 삽입 이미지

  "DATABASE / ORACLE" 분류의 다른 글

- 오라클 유용한 힌트 모음2013/08/20
- 오라클 다이나믹뷰 정리2013/08/20
- 오라클 클러스터링팩터2013/08/20
- [성능진단] 메모리를 많이 사용하는 상위 10개 SQL 추출 쿼리2013/08/20

Posted by 고래아빠

Response
393 Trackbacks , No Comment
RSS :
http://whale.oceanmate.co.kr/rss/response/6


Archives

Recent Comments

Calendar

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Site Stats

Total hits:
298255
Today:
25
Yesterday:
55