본문 바로가기
Programming/SQL

[Oracle] SQL 튜닝 - 실행계획 수립 (Execution Plan)

by 고막고막 2019. 12. 27.

- 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 블럭