Optimizer 란?
Optimizer 란 SQL 을 해석하고 실행계획을 수립 한 후, 이를 통해 데이터를 처리하는 프로세스이다.
Optimizer는 ㅋRBO(Rule Based Optimizer)와 CBO(Cost Based Optimizer) 두 종류가 있다.
자신의 Optimizer가 어떻게 설정되어있는 지 보려면
----------------
SELECT NAME, VALUE, ISDEFAULT, ISMODIFIED, DESCRIPTION FROM V$PARAMETER WHERE NAME LIKE '%optimizer_mode%';
----------------
을 실행하며 된다.
RBO - 특정한 규칙에 의해 실행계획을 세운다.
CBO - 통계정보에의해 비용을 계산하여, 작은 비용이 나오는 방향으로 실행계획을 세운다.
Optimizer_mode의 종류
① CHOOSE - v9i까지의 기본값
- 통계정보의 따라 CBO를 이용할지 RBO를 이용할지 선택한다. 통계정보가 전혀 없을때는 RBO를 선택하고, 통계정보가 일부라도 존재할때는 CBO를 선택하게 된다.
② ALL_ROWS - Cost Base임을 뜻함 (v10g의 기본값)
- CBO의 한 종류로 큰 데이터 처리에 적합하다.
③ FIRST_ROWS - Cost Base임을 뜻함
- CBO의 한 종류로 작은 데이터 처리에 적합하다.
④ RULE - Rule Base임을 뜻함
*테이블에 통계정보를 생성하기 위해서는 아래명령을 실행시키면 된다.
SQL> ANALYZE TABLE [테이블이름] COMPUTE STATISTICS ;
댓글 없음:
댓글 쓰기