2022. 2. 3. 15:18 오라클
dbms_optim_bundle 패키지
dbms_optim_bundle 패키지
19.12 RU 부터 API가 수정되면서 지원되는 optimizer fixes enable 가능하게 해주는 Package
기본은 disable로 비활성화 되어 있으며 RU 후 해당 Fix 를 활성화 하고 싶다면 아래와 같이 가능하다.
1. 리스트 확인
SQL>execute dbms_optim_bundle.getBugsforBundle;
2. 기능 enable
SQL>execute dbms_optim_bundle.enable_optim_fixes('ON','BOTH', 'YES')
- 부분적으로 하고 싶다면
SQL>exec dbms_optim_bundle.set_fix_controls('31668694:0','*', 'BOTH','YES');
PL/SQL procedure successfully completed.
예시)
DBMS_OPTIM_BUNDLE.ENABLE_OPTIM_FIXES(
action => 'ON' | 'OFF' ,
scope => 'MEMORY' | 'SPFILE' | 'BOTH' | 'INITORA' ,
current_setting_precedence => 'YES' | 'NO' )
3. Fix 되는 DESCRIPTION 을 확인하고 싶다면 아래의 view 를 이용하여 확인가능 (v$system_fix_control )
set lines 150
col SQL_FEATURE for A30
select bugno, value ,sql_feature, description from v$system_fix_control where bugno in (31668694);
BUGNO VALUE SQL_FEATURE DESCRIPTION
---------- ---------- ------------------------------ ----------------------------------------------------------------
31668694 0 QKSFM_CARDINALITY_31668694 sanity check when adjusting GROUP BY cardinality
4. 작업후 spfile 에 아래와 같은 내용이 기록된다. ( 여기서 0은 비활성화, 1은 활성화 의미)
*._fix_control='31668694:1''#added through dbms_optim_bundle package
같은 방법으로는 이전과 같은 방식으로도 가능하다.
alter system set "_fix_control"='31668694:0';