Skip to main content

03B

About 1 minOracle DBcrashcourseoracleoracle-dboracle-sql

03B κ΄€λ ¨


trace

1. ν…ŒμŠ€νŠΈ ν…Œμ΄λΈ” 생성

CREATE TABLE big_table AS 
SELECT 
  * 
FROM dba_tables, (SELECT level FROM DUAL CONNECT BY level <= 1000)
WHERE 1=1;

2. μ‹€μŠ΅ sql

SELECT * FROM big_table WHERE 1=1
AND owner = 'SYSTEM'
AND tablespace_name = 'SYSTEM'
AND table_name LIKE 'REPCAT$%'
ORDER BY table_name DESC;

3. μ‹€μ œμ‹€ν–‰κ³„νš 및 statistics 확인

3.1 trace file 둜 확인

-- 3.1.1. trace file ꡬ뢄을 μœ„ν•œ identifier 적용
ALTER session SET tracefile_identifier = 'hnj';
--
--
-- 3.1.2. `trace` μƒμ„±νŒŒμΌ 확인
SELECT 
  r.value || '/' || LOWER(t.instance_name) || 
  '_ora_' || LTRIM(TO_CHAR(p.spid)) || '_hnj' || 
  '.trc' trace_file
FROM 
  v$process p
  , v$session s
  , v$parameter r
  , v$instance t
WHERE 1=1
AND p.addr = s.paddr
AND r.name = 'user_dump_dest'
AND s.sid = (SELECT sid FROM v$mystat WHERE 1=1 AND rownum = 1)
; 
---
---
--- 3.1.3. μ„Έμ…˜μ— trace 적용
ALTER session SET EVENTS '10046 trace name context forever, level 12' ; -- level 12둜 생성
---
---
--- 3.1.4. μ‹€μŠ΅ sql μˆ˜ν–‰
SELECT *
  FROM BIG_TABLE
WHERE OWNER = 'SYSTEM'
  AND TABLESPACE_NAME = 'SYSTEM'
  AND TABLE_NAME LIKE 'REPCAT$%'
ORDER BY TABLE_NAME DESC;
---
--- 3.1.5. μ„Έμ…˜μ— trace off
ALTER SESSION SET EVENTS '10046 trace name context forever, off';
  1. 3.1.2 μ—μ„œ ν™•μΈν•œ 파일 경둜 및 파일λͺ… μœ„μΉ˜λ‘œ 이동 ν›„ tkprof 둜 trace 파일 생성
tkprof ~.trc chg_trc.txt sys=no

μ°Έμ‘°: http://blog.hkwon.me/oracle-sql-trace-tkprof/

  1. chg_trc.txt νŒŒμΌν™•μΈ

trace 파일 ν™•μΈν•˜μ—¬ sql μˆ˜ν–‰μ‹œκ°„ 읽은 λΈ”λŸ­ μ‹€ν–‰κ²Œνš λ“± 확인

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1      0.01       0.00          0         86          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3      0.01       0.00          0         86          0           1

3.2 dbms_xplan 확인

-- 3.2.1 μ„Έμ…˜μ— statistics_level  μ„€μ •
ALTER session SET statistics_level = 'ALL';
--
--
-- 3.2.2 μ‹€μŠ΅sql μˆ˜ν–‰
SELECT * FROM big_table WHERE 1=1
AND owner = 'SYSTEM'
AND tablespace_name = 'SYSTEM'
AND table_name LIKE 'REPCAT$%'
ORDER BY table_name DESC;
--
--
-- 3.2.3 dbms_xplan.display_cursor 확인
SELECT * FROM TABLE(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
--
--

이찬희 (MarkiiimarK)
Never Stop Learning.