- Rule Based Optimizer : 지정한 규칙을 기반으로 판단. 요즘은 거의 사용하지 않음
- Cost Based Optimizer : 통계정보를 기반으로 최적의 실행계획을 수립함(ML 같은 방식은 아니고 계산기와 같음).
CBO가 작동할 때 어떻게 실행 계획을 수립하는지 PlusTrace로 테스트 해보자.
1. 로그인 할 사용자에게 plustrace 권한을 부여한다.
2. 아래 구문을 셋팅하면 DB server가 로그를 추적하는 것을 확인할 수 있다.
SET AUTOTRACE [ON | OFF | TRACE | TRACEONLY]
- ON : SQL문 실행 + 실행 계획 + 통계 정보 + 수행 결과
- OFF : 어떤 결과도 보여주지 않음
- TRACE : SQL문 실행 + 실행 계획 + 통계 정보
3. 결과 분석
0 recursive calls |
Data Dictionary Read 블럭 수 |
0 db block gets |
DML실행 시 변경 전 데이터 임시 저장 |
1 consistent gets |
SQL 실행 시 테이블 및 인덱스 저장을 위한 메모리 공간 |
0 physical reads |
SQL 실행 시 디스크 상의 데이터 파일로 부터 읽혀진 블럭 수 |
0 redo size | DML 실행 시 변경 전/후 데이터를 로그 버퍼 영역에 백업 |
799 bytes sent via SQL*Net to client |
클라이언트로 전송한 데이터 |
512 bytes received via SQL*Net from client |
|
1 SQL*Net roundtrips to/from client |
|
0 sorts (memory) |
Program Global Area |
0 sorts (disk) |
사용한 Temp tablespace 블럭 수 |
'Programming > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - Level 3~5 모든 문제 풀이 모음 (0) | 2021.08.11 |
---|---|
[Oracle] SELECT문 처리 과정 (0) | 2019.12.27 |
[Oracle] Delete, Truncate, Drop 비교 + HWM(High Water Mark) (0) | 2019.12.24 |
[Oracle] sqlplus 치환변수 single ampersand(&), double ampersand(&&), / (0) | 2019.12.24 |
[Oracle] view, inlineview 구조 상의 차이점 (0) | 2019.12.24 |