STATS_PACK - GATHER - PART 1
STATS PACK
STATS PACK 이 어떤 역할을 하는지는 알아보았습니다. 거기에 더해 GATHER_INDEX_STATS 구문을 통한 INDEX 의 STATISTICS를 모으는 방법을 알아 보았습니다. 이번 포스팅에서는 그 외에 TABLE, SCHEMA, DATABASE, SYSTEM STATISTICS 를 수집하는 방법을 알아보겠습니다.
사용 방법은 INDEX 와 거의 유사합니다. 그렇기에 중복되는 설명은 피하도록 최대한 노력해 보겠습니다. (라고쓰고 '귀찮습니다.' 라고 읽습니다. ~_~)
DBMS_STATS.GATHER_TABLE_STATS (
|
ownname estimate_percent block_sample method_opt granularity cascade statown |
VARCHAR2, VARCHAR2, VARCHAR2 NUMBER BOOLEAN VARCHAR2 NUMBER VARCHAR2 BOOLEAN VARCHAR2 VARCHAR2 VARCHAR2 BOOLEAN |
DEFAULT NULL, DEFAULT NULL, DEFAULT FALSE, DEFAULT 'FOR ALL COLUMNS SIZE 1' DEFAULT NULL, DEFAULT 'DEFAULT', DEFAULT FALSE, DEFAULT NULL, DEFAULT NULL, DEFAULT NULL, FALSE); |
BLOCK_SAMPLE
무작위 행을 샘플링 할 것인지, 혹은 무작위 블록 단위의 샘플링을 할 것인지 결정할 수 있습니다.
무작위 블록 샘플링이 물론 더 효과가 좋습니다만 데이터가 디스크에 무작위하게 분포되어 있지 않
다면 샘플값은 알지 못하는 값으로 될 것 입니다. ESTIMATE STATISTICS 를 수행할 때만 적절합니다.
CASCADE
해당 테이블과 관련한 INDEX의 STATISTICS 를 같이 수집합니다. 이 옵션을 사용하겠다는 것은
GATHER_INDEX_STATS 를 수행하는 효과 역시 받겠다는 뜻 입니다.
DBMS_STATS.GATHER_SCHEMA_STATS (
|
ownname block_sample method_opt granularity cascade options objlist statown gather_temp |
VARCHAR2, NUMBER BOOLEAN VARCHAR2 NUMBER VARCHAR2 BOOLEAN VARCHAR2 VARCHAR2 VARCHAR2 OUT ObjectTab, VARCHAR2 BOOLEAN BOOLEAN |
DEFAULT NULL, DEFAULT FALSE, DEFAULT 'FOR ALL COLUMNS SIZE 1' DEFAULT NULL, DEFAULT 'DEFAULT', DEFAULT FALSE, DEFAULT NULL, DEFAULT NULL, DEFAULT 'GATHER',
DEFAULT NULL, DEFAULT FALSE DEFAULT FALSE ); |
DBMS_STATS.GATHER_SCHEMA_STATS (
|
ownname block_sample method_opt granularity cascade options statown no_invalidate |
VARCHAR2, NUMBER BOOLEAN VARCHAR2 NUMBER VARCHAR2 BOOLEAN VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 BOOLEAN BOOLEAN |
DEFAULT NULL DEFAULT NULL, DEFAULT 'FOR ALL COLUMNS SIZE 1', DEFAULT NULL, DEFAULT 'DEFAULT', DEFAULT FALSE, DEFAULT NULL, DEFAULT NULL, DEFAULT 'GATHER', DEFAULT NULL, DEFAULT FALSE DEFAULT FALSE ); |
OPTIONS
다음 옵션을 통해 STATISTICS를 수집하는 방법을 정의할 수 있습니다.
GATHER
스키마의 모든 오브젝트에 관한 정보를 얻습니다.
GATHER AUTO
필요한 STATISTICS 정보를 자동으로 얻습니다. 오라클은 어떠한 오브젝트가
새로운 STATISTICS 정보를 필요하는지 결정하고 어떻게 모을지를 결정합니다. 이 옵션을 사용
하면 추가적으로 필요한 파라메터는 ownname, stattab, objlist, 그리고 statown 입니다.
그 외의 다른 파라메터는 무시해버리죠.
GTHER_STALE
STALE 은 우리나라 말 뜻으로 '낡은, 오래된, 싱싱치 못한, 곰팡내 나는' 등의 뜻을 가지고 있죠.
말 그대로 너무 사용하지 않아서 곰팡내 나는 오브젝들의 STATISTICS를 수집합니다.
*_tab_modifications 뷰를 이용하여 곰팡내 나는 오브젝트가 무엇인지 결정합니다.
GATHER_EMPTY
STATISTICS 정보를 가지고 있지 않은 오브젝트의 STATISTCS 정보를 갱신합니다.
LIST_AUTO
GATHER_AUTO 옵션을 통해 수집될 오브젝트의 리스트를 반환합니다.
LIST_STALE
GATHER_STALE 옵션을 통해 수집될 오브젝트의 리스트를 반환합니다.
LIST_EMPTY
GATHER_EMPTY 옵션을 통해 수집될 오브젝트의 리스트를 반환합니다.
OBJLIST
STALE 혹은 EMPTY 한 오브젝트의 리스트
NO_INVALIDATE
TRUE 로 지정되어 있을시 커서(CURSORS)가 INVALIDATED 가 되지 말아야 합니다.
CASCADE 가 정의되어 있다면 GATHER_INDEX_STATS 에 설정되어져 있는 몇몇의 특정
한 타입의 인덱스들에게 적절하지 않습니다.
GATHER_TEMP
GLOBAL TEMPORARY TABLESPACE 의 STATISTICS 정보를 수집합니다. 이 임시 테이블은
생성시 반드시 "ON COMMIT PRESERVE ROWS" 단서를 달아서 생성한 테이블이어야 합니다.
STATISTICS는 이 PROCEDURE(프로시저)를 수행한 세션의 테이터만을 이용하여 STATISTICS
를 수집합니다만, 수집된 정보는 모든 세션과 함께 공유합니다.
댓글 없음:
댓글 쓰기