<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://dbstudy.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95</id>
	<title>SQL 트레이스 방법 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://dbstudy.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95"/>
	<link rel="alternate" type="text/html" href="https://dbstudy.co.kr/w/index.php?title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95&amp;action=history"/>
	<updated>2026-05-08T14:31:37Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://dbstudy.co.kr/w/index.php?title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95&amp;diff=1652&amp;oldid=prev</id>
		<title>2025년 11월 20일 (목) 17:07에 Dbstudy님의 편집</title>
		<link rel="alternate" type="text/html" href="https://dbstudy.co.kr/w/index.php?title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95&amp;diff=1652&amp;oldid=prev"/>
		<updated>2025-11-20T17:07:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 11월 21일 (금) 02:07 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SQL 트레이스 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== SQL 트레이스 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== SQL 세션 트레이스 수행 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== SQL 세션 트레이스 수행 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=sql&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=sql&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- 0.트레이스 식별자 지정&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- 0.트레이스 식별자 지정&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dbstudy</name></author>
	</entry>
	<entry>
		<id>https://dbstudy.co.kr/w/index.php?title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95&amp;diff=1651&amp;oldid=prev</id>
		<title>Dbstudy: 새 문서: == SQL 트레이스 ==  === SQL 세션 트레이스 수행 ==== &lt;source lang=sql&gt; -- 0.트레이스 식별자 지정 alter session set tracefile_identifier=’DBSTUDY_TUN_DUMP’; ==&gt; orcl_ora_10024_&quot;DBSTUDY_TUN_DUMP&quot;.trc 형태로 저장됨.  -- 1. sql trace 시작  ALTER SESSION SET SQL_TRACE = TRUE;  -- 2. event 를 level 12 로 설정.   이렇게 설정하면, SQL trace 정보, 실행계획, 대기 이벤트 정보를 볼 수 있다.  ALTER SESSION SET events &#039;10046 trace n...</title>
		<link rel="alternate" type="text/html" href="https://dbstudy.co.kr/w/index.php?title=SQL_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8A%A4_%EB%B0%A9%EB%B2%95&amp;diff=1651&amp;oldid=prev"/>
		<updated>2025-11-20T17:07:38Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == SQL 트레이스 ==  === SQL 세션 트레이스 수행 ==== &amp;lt;source lang=sql&amp;gt; -- 0.트레이스 식별자 지정 alter session set tracefile_identifier=’DBSTUDY_TUN_DUMP’; ==&amp;gt; orcl_ora_10024_&amp;quot;DBSTUDY_TUN_DUMP&amp;quot;.trc 형태로 저장됨.  -- 1. sql trace 시작  ALTER SESSION SET SQL_TRACE = TRUE;  -- 2. event 를 level 12 로 설정.   이렇게 설정하면, SQL trace 정보, 실행계획, 대기 이벤트 정보를 볼 수 있다.  ALTER SESSION SET events &amp;#039;10046 trace n...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== SQL 트레이스 ==&lt;br /&gt;
&lt;br /&gt;
=== SQL 세션 트레이스 수행 ====&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
-- 0.트레이스 식별자 지정&lt;br /&gt;
alter session set tracefile_identifier=’DBSTUDY_TUN_DUMP’; ==&amp;gt; orcl_ora_10024_&amp;quot;DBSTUDY_TUN_DUMP&amp;quot;.trc 형태로 저장됨.&lt;br /&gt;
&lt;br /&gt;
-- 1. sql trace 시작 &lt;br /&gt;
ALTER SESSION SET SQL_TRACE = TRUE;&lt;br /&gt;
&lt;br /&gt;
-- 2. event 를 level 12 로 설정.   이렇게 설정하면, SQL trace 정보, 실행계획, 대기 이벤트 정보를 볼 수 있다.&lt;br /&gt;
&lt;br /&gt;
ALTER SESSION SET events &amp;#039;10046 trace name context forever, level 12&amp;#039;;&lt;br /&gt;
--        · 10046 = Query가 수행되는 사건. 즉 Query를 수행하는 &amp;quot;사건&amp;quot;을 의미.&lt;br /&gt;
--        · trace name = Trace를 수행. 사건이 발생했을 때의 행위(Action)을 의미. &lt;br /&gt;
--        · context forever, level 12 = 사건이 발생할 때마다 행위를 수행하되, 행위의 레벨을 12로 &lt;br /&gt;
&lt;br /&gt;
-- 3.sql 실행 &lt;br /&gt;
select * from tb_xxx;&lt;br /&gt;
&lt;br /&gt;
-- 4. sql trace 종료&lt;br /&gt;
ALTER SESSION SET SQL_TRACE = FALSE;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- 5. 10046 event 끄기 &lt;br /&gt;
-- 꺼주지 않으면, 수행하는 모든 SQL 에 대한 정보를 모은다.&lt;br /&gt;
ALTER SESSION SET events &amp;#039;10046 trace name context off&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- 6. trace 파일 확인 (12c 이상 에서 가능 )&lt;br /&gt;
SELECT * &lt;br /&gt;
  FROM (&lt;br /&gt;
        SELECT *&lt;br /&gt;
          FROM V$DIAG_TRACE_FILE&lt;br /&gt;
         ORDER BY CHANGE_TIME DESC&lt;br /&gt;
       )&lt;br /&gt;
 WHERE ROWNUM &amp;lt;= 10&lt;br /&gt;
&lt;br /&gt;
-- 7. trace 파일의 내용 추출 (12c 이상 에서 가능 )&lt;br /&gt;
SELECT replace(replace(payload,chr(13)),chr(10)) as payload&lt;br /&gt;
  FROM V$DIAG_TRACE_FILE_CONTENTS&lt;br /&gt;
 WHERE TRACE_FILENAME = &amp;#039;xxxx.trc&amp;#039;&lt;br /&gt;
 ORDER BY LINE_NUMBER&lt;br /&gt;
&lt;br /&gt;
-- 8. 텍스트를 파일로 저장후 윈도우용 tkprof로 명령 수행&lt;br /&gt;
tkprof xxx.trc xxx.txt sys=no&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 트레이스 시간 표시 및 트레이스파일 크기 제한 &lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
-- 트레이스 파일 시간 정보 포함 &lt;br /&gt;
alter session set timed_statistics = TRUE;&lt;br /&gt;
&lt;br /&gt;
--  트레이스 파일 크기 제한&lt;br /&gt;
-- 무제한 &lt;br /&gt;
alter session set max_dump_file_size = &amp;#039;unlimited&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- 100M&lt;br /&gt;
alter session set max_dump_file_size = 100M;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SQL로 트레이스 내용 조회 (12C 이후)  ===&lt;br /&gt;
* 12c이후 부터는 서버(터미널)에서 하지 않아도 된다.&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SELECT NAME,VALUE&lt;br /&gt;
  FROM V$DIAG_INFO&lt;br /&gt;
 WHERE NAME = &amp;#039;Default Trace File&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
  FROM V$DIAG_TRACE_FILE&lt;br /&gt;
-- WHERE TRACE_FILENAME = &amp;#039;xxxx.trc&amp;#039;&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
  FROM V$DIAG_TRACE_FILE_CONTENTS&lt;br /&gt;
 WHERE ADR_HOME = &amp;#039;트레이스 디렉토리&amp;#039;&lt;br /&gt;
   AND TRACE_FILENAME = &amp;#039;트레이스파일명.trc&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 해당 뷰가 없으면 오라클 버전이 12c 이상인지 확인&lt;br /&gt;
&lt;br /&gt;
-- PC에서 보려면 window용 tkprof.exe가 있어야 내용을 볼수 있다.&lt;br /&gt;
&lt;br /&gt;
-- (오라클 클라이언트를 관리자용으로 설치 해야 함)&lt;br /&gt;
&lt;br /&gt;
-- PAYLOAD 컬럼이 트레이스 파일내용임 =&amp;gt;  복사하여 트레이스파일.trc 형태로 저장한다&lt;br /&gt;
* 더 간단하게 조회&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SELECT   REPLACE (REPLACE (payload, CHR (13)), CHR (10)) AS payload&lt;br /&gt;
    FROM v$diag_trace_file_contents&lt;br /&gt;
   WHERE adr_home = &amp;#039;트레이스 파일 디렉토리&amp;#039;&lt;br /&gt;
     AND trace_filename = &amp;#039;트레이스파일명.trc&amp;#039;&lt;br /&gt;
ORDER BY line_number;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== SQL 트레이스 파일 생성 위치 확인 (11g )===&lt;br /&gt;
&lt;br /&gt;
* 11G이하 버전은 서버에서 작업 해야 한다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SELECT NAME,VALUE&lt;br /&gt;
  FROM V$DIAG_INFO&lt;br /&gt;
 WHERE NAME = &amp;#039;Diag Trace&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
SHOW parameter user_dump_dest&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 트레이스 파일 변경 및 내용 확인 ===&lt;br /&gt;
$&amp;gt; tkprof 트레이스파일명 변경할파일명 [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ] ...&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
$&amp;gt; tkprof 트레이스파일명 변경할파일명 sys=no &lt;br /&gt;
-- tkprof scott/tiger sys=no trace=orcl_ora_7180.trc output = report01.txt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== TKPROF 결과 값 ====&lt;br /&gt;
# Parse     &lt;br /&gt;
#: : SQL문이 파싱되는 단계에 대한 통계. 새로 파싱을 했거나 Shared SQL Pool에서 찾아 온 것도 같이 포함 된다.&lt;br /&gt;
# Execute &lt;br /&gt;
#: : SQL문의 실행 단계에 대한 통계. Update, Insert, Delete 문장들은 여기에 수행한 결과만 나온다.&lt;br /&gt;
# Fetch     &lt;br /&gt;
#: : SQL문이 실행되면서 패치된 통계&lt;br /&gt;
# count    &lt;br /&gt;
#: : SQL문이 파싱/실행/패치가 수행된 횟수&lt;br /&gt;
# cpu        &lt;br /&gt;
#: : parse, execute, fetch가 실제로 사용한 CPU시간&lt;br /&gt;
# elapsed &lt;br /&gt;
#: : 작업의 시작에서 종료시까지 실제 소요된 시간&lt;br /&gt;
# disk       &lt;br /&gt;
#: : 디스크에서 읽혀진 데이터 블럭의 수&lt;br /&gt;
# query    &lt;br /&gt;
#: :&amp;#039;읽기 일관성&amp;#039; 모드에서 처리한 블록 수. 여기에는 블록을 &amp;#039;롤백&amp;#039;하기 위해 롤백(undo) 세그먼트에서 읽은 블록 수가 포함됨.&lt;br /&gt;
# current  &lt;br /&gt;
#: : &amp;#039;current&amp;#039; 모드에서 읽은 블록 수. current 모드 블록은 일관된 읽기 방식이 아닌 현재 있는 그대로 검색됩니다. &lt;br /&gt;
#:   일반적으로 쿼리에 대한 블록 검색은 쿼리가 시작되었을 때 존재했던 그대로 가져옵니다. 현재 모드 블록은 이전 시점이 아닌 현재 있는 그대로 가져옵니다. &lt;br /&gt;
#:   SELECT 중에 테이블의 전체 스캔을 수행하기 위해 데이터 사전을 읽어서 익스텐트 정보를 찾기 때문에 current 모드 검색이 표시될 수 있습니다(일관된 읽기가 아닌 &amp;#039;current&amp;#039; 정보가 필요합니다). 수정하는 동안 현재 모드에서 블록에 액세스하여 쓰기를 수행합니다.&lt;br /&gt;
#:* 물리적 IO를 수행하는 데는 버퍼링된 읽기보다 시간이 오래 걸리므로 대부분의 경우 버퍼링된 읽기를 수행해야 합니다.&lt;br /&gt;
# rows      &lt;br /&gt;
#: : SQL문을 수행한 결과에 의해 최종적으로 액세스된 로우의 수&lt;br /&gt;
&lt;br /&gt;
[[category:oracle]]&lt;/div&gt;</summary>
		<author><name>Dbstudy</name></author>
	</entry>
</feed>