728x90
Optimizer_mode
- RULE
- RBO(Rule-based optimizer) 규칙 기반 옵티마이저
- CHOOSE
- CBO(Cost-based optimizer) 비용 기반 옵티마이저
- FIRST_ROWS
- CBO(Cost-based optimizer) 비용 기반 옵티마이저
- 옵티마이저가 인덱스를 가장 많이 사용할 수 있도록 하는 모드 중 하나이다.
- FIRST_ROWS_N
- CBO(Cost-based optimizer) 비용 기반 옵티마이저
- N은 1, 10, 100, 1000개 행을 의미하고 최초의 N건의 응답 속도를 최적화할 때 사용하는 모드 중 하나이다. B2C 고객의 수가 엄청 많다면 FIRST_ROWS_1을 추천한다.
- FIRST_ROWS_1을 사용한다면 optimizer_index_caching과 optimizer_index_cost_adj를 변경해주어야 한다.
- optimizer_index_caching는 인덱스를 사용해 접근한 블록을 오라클 메모리, 버퍼 캐시 디비 캐시 사이즈 파라미터에서 찾을 수 있는 비율을 말한다. 보통 90 ~ 95
- optimizer_index_cost_adj는 테이블을 Full Scan을 많이 할지 아니면 인덱스를 더 많이 사용할지를 결정하는 파라미터이다. 보통 30 ~ 35
- ALL_ROWS(DEFUALT)
- CBO(Cost-based optimizer) 비용 기반 옵티마이저
- 데이터의 모든 ROW를 빠르게 가져오고 테이블 Full Scan을 선호하는 경향이 있다.
- 소형 프로그램이거나 DBA가 없을 경우 권장한다.
Adaptive Query Optimization
Oracle 자동 SQL 최적화 관리이고 Oracle 12C부터 적용 되었다. 데이터 베이스가 내부적으로 분석해서 SQL 실행 계획을 최적화하는 방식이다.
- 오라클 옵티마이저 통계 및 통계 어드바이저
- SQL Plan 관리
- 정확도가 비교적 높은 SQL 처리
Adaptive Query Optimization를 false로 처리할려면
- 완벽에 가까운 모델링(테이블 설계)
- 아름다운 인덱스 설계
- 확실한 테이블, 인덱스 통계정보 관리
- 환상적인 SQL 튜닝
Adaptive Query Optimization 기능을 제어하는 대표적인 파라미터
- optimizer_adaptive_plans (Defualt: true)
- 옵티마이저가 adaptive_plan을 고려 대상으로 판단할지 여부를 결정한다.
- optimizer_adaptive_statistics (Defualt: false)
- 통계 피드백을 비활성화해서 SQL Plan 변경을 방지한다.
- optimizer_adaptive_reporting_only (Defualt: false)
- 어뎁티브 기능에 필요한 정보만 수집하고 SQL Plan을 변경할지 여부를 결정한다.
- _optimizer_adaptive_cursor_sharing (Defualt: true)
- 변숫값에 따라서 SQL Plan을 변경하는 파라미터이다.
- _optimizer_aggr_groupby_elim (Defualt: true)
- 특정 기준 조건으로 group by를 할 때 안에 group by 있고 밖에 group by가 또 있다고 하면 두 개의 group by가 아닌 하나의 group by만 사용하는 경우가 있다. 이럴 경우 문제가 있을 수도 있어 false로 놓고 많이 사용한다.
- _add_col_optim_enabled (Defualt: true)
- 오라클 내부에서 테이블 칼럼을 추가하면 빠른 속도로 처리가 된다. 하지만 Not null 조건에 defualt라고 하면 약간 문제가 있을 수 있어서 false로 놓고 많이 사용한다.
참고
https://www.youtube.com/watch?v=Y7scjyhY_1E&list=PLKaW9UT2TL3Lpqrh_lJ8PHyHpR7NgdrPP&index=4
728x90
'Oracle > Oracle DataBase 관리' 카테고리의 다른 글
Oracle 복구를 빠르게 하는 방법(IMPDP) (0) | 2022.12.08 |
---|---|
Oracle 백업을 빠르게 하는 방법(EXPDP) (0) | 2022.12.06 |
오라클 파라미터 관리(이론) (0) | 2022.12.02 |
오라클 테이블스페이스 관리(실전) (0) | 2022.12.01 |
오라클 테이블 스페이스 관리(이론) (0) | 2022.11.26 |