DB/Tuning

DBMS_XPLAN을 이용하여 실행계획 및 단계별 일량 보기

시처럼 음악처럼 2009. 4. 22. 18:54
오라클 10g부터 gather_plan_statistics 힌트를 이용하면 SQL Trace를 수행하지 않고도 Query의 Plan 단계별 일량(Actual+Estimated Rows을 포함한)을 알 수 있다고 한다.

다음과 같이 사용하면 된다.

1. 쿼리 수행시 gather_plan_statistics 힌트를 사용
예) SELECT /*+ gather_plan_statistics */ /* SEEIN */ * FROM Table;

2. v$sql에서 sql_id, child_number 확인
예) SELECT sql_id, child_number
        FROM v$sql
      WHERE sql_text LIKE '%SEEIN%' ;

3. DBMS_XPLAN을 이용하여 실행 결과 확인
SELECT * FROM table(DBMS_XPLAN.DISPLAY);
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(sql_id, child_number, 'ALLSTATS LAST'));
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(sql_id, child_number, 'RUNSTATS_LAST')); -- 10g