본문 바로가기
oracle

[ORACLE] TABLE 통계정보 수집 (DBMS_STATS.GATHER_TABLE_STATS)

by 둥구리둥둥 2023. 3. 13.
728x90
반응형

DBMS_STATS.GATHER_TABLE_STATS 
(
    ownname          VARCHAR2, 
    tabname          VARCHAR2, 
    partname         VARCHAR2 DEFAULT NULL,
    estimate_percent NUMBER   DEFAULT DEFAULT_ESTIMATE_PERCENT,
    block_sample     BOOLEAN  DEFAULT FALSE,
    method_opt       VARCHAR2 DEFAULT DEFAULT_METHOD_OPT,
    degree           NUMBER   DEFAULT DEFAULT_DEGREE_VALUE,
    cascade  BOOLEAN  DEFAULT DEFAULT_CASCADE,
    no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type(get_param('NO_INVALIDATE')),
    granularity      VARCHAR2 DEFAULT DEFAULT_GRANULARITY,
    force            BOOLEAN DEFAULT FALSE
);

<파라미터 설명>

ownname 스키마의 이름. NULL일 경우 현재 스키마의 이름
tabname 테이블의 이름
partname 파티션의 이름
estimate_percent 샘플링할 로우의 퍼센트를 정의한다.
0.000001 이상 100 이하의 값을 설정할 수 있다. 0을 입력한 경우에는 optimizer가 테이블에 크기에 따라 적합한 sampling rate을 결정하여 수행.
block_sample estimate_percent가 100보다 작을 때 로우 샘플링 대신 블록 샘플링을 사용할 수 있다. 블록 샘플링 방식은 로우 샘플링에 비해 표본이 고르게 뽑히지 않기 때문에 estimate_percent가 충분히 크지 않을 때는 기본값인 FALSE로 지정.
degree 병렬 쿼리의 처리 개수를 설정.
cascade
대상 테이블의 인덱스에 대한 통계수집 여부
인덱스 통계정보는 병렬처리가 불가능
TRUE – 대상 테이블에 관련된 index 에 대해서 통계정보 수집
no_invalidate TRUE로 설정하면 관련된 Physical Plan을 삭제하지 않음.
granularity 통계 정보를 수집하는 대상을 지정.
ALL: 테이블 및 파티션의 통계 정보를 수집.
GLOBAL: 파티션을 제외한 테이블의 통계 정보만 수집.
PARTITION: 파티션 수준의 통계 정보만 수집.
force TRUE로 설정하면 테이블의 통계 정보가 잠겨 있어도 수집.

 

EX>
SQL> exec dbms_stats.gather_table_stats(owner =>'SCOTT', tabname =>'EMP', partname =>'EMP_PART_202303', estimate_percent => 15, cascade => TURE, degree => 4, granularity =>'PARTITION', NO_INVALIDATE => false);

728x90
반응형

'oracle' 카테고리의 다른 글

[ORACLE] DBMS_METADATA.GET_DDL  (0) 2023.03.24
[ORACLE] ORA-00439: feature not enabled: Deferred Segment Creation  (0) 2023.03.22
[ORACLE] 시퀀스 값 변경  (0) 2023.03.03
[ORACLE] BLOCK CORRUPTION 조치  (0) 2023.02.27
[ORACLE] 시퀀스 생성  (0) 2023.02.20