#title SQL*Plus에서 실행계획보기 [[TableOfContents]] ==== 환경만들기 ==== 1. 먼저..두개의 파일을 읽어 실행시킨다. $ORACLE_HOME/admin/rdbms/utlxplan.sql 2. DBA권한을 가진 사용자로 로그인 $ORACLE_HOME/sqlplus/admin/plustrce.sql 실행 -> V$들에 대한 select권한을 허가 -> DBA에게는 plustrace 역할 허가 grant plustrace to scott; set autotrace on ==== PLAN_TABLE,에 기록하기 ==== {{{#!geshi plsql EXPLAIN PLAN SET STATEMENT_ID = 'TEST' FOR SELECT * FROM EMP; SELECT LPAD(OPERATION, LENGTH(OPERATION) + 2 * (LEVEL -1)) || DECODE(ID, 0, 'Cost Estimate:' || DECODE(POSITION, '0', 'N/A', POSITION), NULL) || ''|| OPTIONS || DECODE(OBJECT_NAME, NULL, NULL, ':') || RPAD(OBJECT_OWNER, LENGTH(OBJECT_NAME) + 1, ',') || OBJECT_NAME || DECODE(OBJECT_TYPE, 'UNIQUE', ' (U) ', 'NIN_UNIQUE', '(NU)', NULL) || DECODE(OBJECT_INSTANCE, NULL, NULL, '('|| OBJECT_INSTANCE || ')') PLAN FROM PLAN_TABLE START WITH ID = 0 AND STATEMENT_ID = 'TEST' CONNECT BY PRIOR ID = PARENT_ID AND STATEMENT_ID = 'TEST'; }}} ==== 테이블 통계 분석 ==== {{{#!geshi plsql begin dbms_stats.gather_table_stats(ownname=> 'SCOTT', tabname=> 'EMP', partname=> NULL); end; }}}