01C
Less than 1 minute
01C κ΄λ ¨
Auto Trace
κ°μ
SQL μν μ μ€μ μΌλ μΈ‘μ λ° νλνλλ° μ μ©ν μ 보λ€μ λ§μ΄ ν¬ν¨νλ λꡬ
AutoTrace μ΅μ
μλμ κ°μ μ΅μ μ λ°λΌ νμν λΆλΆλ§ μΆλ ₯ν΄ λ³Ό μ μμ
set autotrace on
: SQLμ μ€ννκ³ κ·Έκ²°κ³Όμ ν¨κ» μ€ν κ³ν λ° μ€νν΅κ³λ₯Ό μΆλ ₯set autotrace on explain
: SQLμ μ€ννκ³ κ·Έκ²°κ³Όμ ν¨κ» μ€ν κ³νμ μΆλ ₯set autotrace on statistics
: SQLμ μ€ννκ³ κ·Έκ²°κ³Όμ ν¨κ» μ€νν΅κ³λ₯Ό μΆλ ₯set autotrace traceonly
: SQLμ μ€ννμ§λ§ κ·Έ κ²°κ³Όλ μΆλ ₯νμ§ μκ³ , μ€νκ³νκ³Ό μ€νν΅κ³λ§μ μΆλ ₯set autotrace traceonly explain
: SQLμ μ€ννμ§μκ³ μ€νκ³νλ§μ μΆλ ₯set autotrace traceonly statistics
: SQLμ μ€ννμ§λ§ κ·Έ κ²°κ³Όλ μΆλ ₯νμ§ μκ³ , μ€νν΅κ³λ§μ μΆλ ₯
1~3 μν κ²°κ³Όλ₯Ό μΆλ ₯ ν΄μΌ νλ―λ‘ μΏΌλ¦¬λ₯Ό μ€μ μν 4,6 μ€ν ν΅κ³λ₯Ό 보μ¬μ€μΌ νλ―λ‘ μΏΌλ¦¬λ₯Ό μ€μ μν 5 λ²μ μ€ν κ³νλ§ μΆλ ₯νλ©΄ λλ―λ‘ μ€μ μννμ§ μμ
AutoTrace νμκΆν
- Autotrace κΈ°λ₯μ μ€νκ³ν νμΈ μ©λλ‘ μ¬μ©νλ€λ©΄ Plan_Tableλ§ μμ± λμ΄ μμΌλ©΄ κ°λ₯
- μ€νν΅κ³ κΉμ§ νμΈ νλ €λ©΄
v_$sesstat
,v_$statname
,v_$mystat
λ·°μ λν μ½κΈ° κΆνμ΄ νμ dba
,select_catalog_role
λ±μ λ‘€μ λΆμ¬λ°μ§ μμ μ¬μ©μμ κ²½μ° λ³λμ κΆν μ€μ μ΄ νμplustrace
λ‘€μ μμ±νκ³ λ‘€μ λΆμ¬νλ κ²μ΄ νΈλ¦¬
SQL> @?/sqlplus/admin/plustrace.sql
SQL> grant plustrace to scott;
DBMS_XPLAN
DBMS_XPLAN.DISPLAY
DBMS_XPLAN.DISPLAY_CURSOR
μμ 1: μμ μ€νκ³ν νμΈ
explain plan for
SELECT * FROM EMP WHERE 1=1
AND empno=7900;
SELECT * FROM TABLE(dbms_xplan.display);
μμ 2: μμ μ€νκ³ν νμΈ (sql_id
)
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'BASIC'));
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED'));
-- νμνμΈ
SHOW PARAMETER statistics_level;
SELECT *
FROM v$parameter
WHERE 1=1
AND name LIKE '%statistics_level%';
μμ 3: μ€μ μ€νκ³ν νμΈ
SET SERVEROUTPUT OFF;
ALTER SESSION SET statistics_level = 'ALL';
SELECT /*+ GATHER_PLAN_STATISTICS *//* HNJ */ * FROM EMP WHERE 1=1 AND empno = 7900;
-- sql_id νμΈ
SELECT SUBSTR(SQL_TEXT, 1, 30) SQL_TEXT, SQL_ID, CHILD_NUMBER
FROM V$SQL
WHERE SQL_TEXT LIKE '%HNJ%'
AND SQL_TEXT NOT LIKE '%V$SQL%';
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('a1n5k59v630kb', 0, 'ALLSTATS LAST'));