2009년 8월 21일 금요일

ORACLE_002. STATS PACK - GATHER - PART 1

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          
   tabname          
   partname

   estimate_percent        

   block_sample  

   method_opt      
   degree

   granularity

   cascade  
   stattab          
   statid  

   statown          
   no_invalidate  

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          
   estimate_percent        

   block_sample  

   method_opt      
   degree

   granularity

   cascade  
   stattab          
   statid  

   options

   objlist

   statown          
   no_invalidate

   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          
   estimate_percent        

   block_sample  

   method_opt      
   degree

   granularity

   cascade  
   stattab          
   statid  

   options

   statown

   no_invalidate         
   gather_temp  

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

               를 수집합니다만, 수집된 정보는 모든 세션과 함께 공유합니다.

댓글 없음:

댓글 쓰기