OPTIMIZER_FEATURES_ENABLE
- 정의 : Oracle version upgrade후 이전 version의 optimizer를 계속 사용하고자 할 때 하위 버전 지정
(기능의 수행을 제한 NO!!)
- 적용 사례 : Oracle version 변경 시에 이전 버전에 맞게 튜닝 된 시스템의 경우 이전 버전에 맞는 실행계획으로의 처리가 더 좋은 성능을 보일 때, 이 parameter 값을 이전 version으로 지정하면 optimizer가 이전 버전 상태로 작동
- Default Value : current release
- 특징
- Static Parameter
- 사용법
optimizer_features_enable = { 8.0.0 | ... 9.2.0 | 10.0.0 | 10.1.0 | 10.1.0.3 | 10.1.0.4 | 10.2.0.1}
- 엔코아 퀴즈
{panel:title="OPTIMIZER_FEATURES_ENABLE" Parameter에 대해서 논하시오!}
문제 】
i) 단순히 이 파라미터가 뜻하는 의미, 즉 매뉴얼에 있는 파라미터의 의미
II) 이 파라미터에서 유추해 낼 수 있는 숨겨진 의미 : 설정값과 그 값에 따른 동작이 무엇인가
풀이 】
1) 이 Parameter 는 오라클 CostBase Optimizer의 발전 및 오라클의 인증 이력이다.
2) 오라클 CBO의 지속적인 성능개선으로 RBO를 대신하여 CBO만으로 충분히 사용 가능하다.
i) 특별히 기능의 수행을 제한하는 것이 아니라 기본 설정 값을 지정하는 것
오라클의 다른 파라미터 중에서 COMPATIBLE 이라는 파라미터가 있으며, 버전 별 설정 값을 지정하며 이는 실제로 구문이나 기능의 제한을 주는 파라미터이다.
버전에 따른 파라미터의 기본 설정 값은 optimizer의 기능 구현이 달라진다.
예를 들면 HASH_JOIN_ENABLED, _UNNEST_SUBQUERY, OPTIMIZER_MAX_PERMUTATIONS 등등의 값이 8i와 9i의 경우 다르다. UNNEST_SUBQUERY 기능이 8i에도 있지만 기본값은 아니며 사용자가 힌트 나 세션설정으로 변경 시에만 적용된다. 즉 8i에서는 이 기능의 구현이 완벽하지는 않았다고 볼 수도 있으나, 9i에서는 기본 설정에 TRUE로 되어 있는 등의 차이가 있다.
버전 변경 시에 이전 버전에 맞게 튜닝 된 시스템의 경우 이전 버전에 맞는 실행계획으로의 처리가 더 낳은 성능을 보일 수 있고, 버그 아닌 버그로 메타링크등에 올라오는 자료들을 보시면 이 파라미터를 낮게 설정한 경우 더 좋은 성능을 보이는 예도 있다.
ii) 이 파라미터에서 유추 할 수 있는 결론 : "오라클의 CBO에 대해서 더욱 정확히 이해하고 알게 될수록 RBO 대신 CBO를 잘 사용할 수 있게 되며 이제는 CBO의 기능이 강화되어 CBO만으로 충분한 사용이 가능하다"
COST의 개념을 기반으로 오라클을 이해하고 사용할 때가 되었다는 것이다.
{panel}
문서에 대하여
- 최초작성자 : 박혜은
- 최초작성일 : 2009년 11월 19일
- 이 문서에 있는 테스트 결과는 DBMS버전과 구성된 환경에 따라 다를 수 있습니다.