DB튜너 | 의사 |
---|---|
Explain Plan | X-ray |
AutoTrace | CT촬영 |
실제일량 측정 및 SQL 트레이스 | MRI |
쿼리 변환 및 옵티마이저 힌트 | 외용약 및 내복약 처방 |
인덱스 조정 | 칼을 대지 않는 시술 |
반정규화 및 진계 테이블 생성 | 칼을 대는 절개수술 |
SQL문을 분석하고 해석하여, Execution Plan(실행계획)을 수립하여 Plan_Table(실행계획테이블)에 저장해주는 명령어
옵티마이저는 SQL문이 실행될 때마다 우선 Execution Plan을 작성하여 Plan_Table에 저장
사용자는 Plan_Table에 저장된 Execution Plan을 통하여 SQL문에 대한 옵티마이저의 Access하는 경로를 확인
TIP!
'$ORACLE_HOME'을 '?'로 사용할 수 있다.
SQL > set linesize 200 //보여질 넓이 값 조정
SQL > Explain plan set statement_id ='query1' for //explain plan 명령 사용
2 select * from emp where empno = 7900;
해석되었습니다.
SQL > @?/rdbms/admin/utlxpls //9i부터 plan_table에서 읽은 데이터를 포맷팅해서 출력
plan_table_output
-----------------------------------------------------------------------------
Plan hash value: 4024650034
-----------------------------------------------------------------------------
|ID | Operation | Name | Rows | Bytes | Cost (%CPU) |
-----------------------------------------------------------------------------
| 0| SELECT STATEMENT | | | 32| 1 (0)|
| 1| TABLE ACCESS BY INDEX ROWID |EMP | 1| 32| 1 (0)|
|* 2| INDEX UNIQUE SCAN |EMP_PK| 1| | 0 (0)|
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Predicate Information (identified by operation id):
-----------------------------------------------------------------------------
2- access("EMPNO"=7900)
서적(오라클 성능 고도화 원리와해법 I) : http://book.daum.net/detail/book.do?bookid=KOR9788996246015