RDB/Oracle

oracle 19c dictionary 및 fixed 테이블 통계정보 수집

세모데 2022. 2. 18. 11:52

1. 19c dictionary 및 fixed 테이블 통계 정보 수집

  • EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
  • EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

    * 기존 데이터 백업시 

  • EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS(stattab=>'???', statid=>'???', statown=>'???');
  • EXEC DBMS_STATS.GATHER_DICTIONARY_STATS(stattab=>'???',statid=>'???',statown=>'???');

 

2. 통계 수집 방식 변경

  • 통계 수집을 incremental 방식으로 변경
    begin 
          dbms_stats.set_global_prefs('incremental', 'true');
    end;
    /
  • 통계 수집시 column에 대한 수집을 고정
    begin
          dbms_stats.set_global_prefs('method_opt', 'FOR ALL COLUMNS SIZE 1');
    end;
    /

3.  통계 global 설정 확인

SET LINESIZE 250

COLUMN autostats_target FORMAT A20
COLUMN cascade FORMAT A25
COLUMN degree FORMAT A10
COLUMN estimate_percent FORMAT A30
COLUMN method_opt FORMAT A25
COLUMN no_invalidate FORMAT A30
COLUMN granularity FORMAT A15
COLUMN publish FORMAT A10
COLUMN incremental FORMAT A15
COLUMN stale_percent FORMAT A15
SELECT DBMS_STATS.GET_PREFS('AUTOSTATS_TARGET') AS autostats_target,
       DBMS_STATS.GET_PREFS('CASCADE') AS cascade,
       DBMS_STATS.GET_PREFS('DEGREE') AS degree,
       DBMS_STATS.GET_PREFS('ESTIMATE_PERCENT') AS estimate_percent,
       DBMS_STATS.GET_PREFS('METHOD_OPT') AS method_opt,
       DBMS_STATS.GET_PREFS('NO_INVALIDATE') AS no_invalidate,
       DBMS_STATS.GET_PREFS('GRANULARITY') AS granularity,
       DBMS_STATS.GET_PREFS('PUBLISH') AS publish,
       DBMS_STATS.GET_PREFS('INCREMENTAL') AS incremental,
       DBMS_STATS.GET_PREFS('STALE_PERCENT') AS stale_percent
FROM   dual;