2010년 3월 24일 수요일

통계정보 생성관련 DBMS_STATS New 11g

Oracle 11g에서는 "Preference"라는 새로운 개념을 통해 
다음과 같이 훨씬 직관적이고 깔끔한 방법을 쓸 수 있다.
원하는 테이블에 대해 통계정보 수행시 CASCADE, DEGREE,  
ESTIMATE_PERCENT,  METHOD_OPT, NO_INVALIDATE, 
GRANULARITY, PUBLISH, INCREMENTAL, STALE_PERCENT
등 개별로 설정하여 좀더 편리성을 제공 해 주고 있다.




-- 특정 테이블에 대한 설정 ( new 11g )
Syntax


DBMS_STATS.SET_TABLE_PREFS (
    ownname    IN  VARCHAR2, 
    tabname    IN  VARCHAR2,   
    pname      IN  VARCHAR2,   
    pvalue     IN  VARCHAR2 );




pname Parameters


Preference name. The default value for following preferences can be set:


        CASCADE, DEGREE,  ESTIMATE_PERCENT,  METHOD_OPT, NO_INVALIDATE, GRANULARITY, PUBLISH, INCREMENTAL, STALE_PERCENT






-- 아래와 같이 한번만 설정
EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'SHWOO_T1', 'ESTIMATE_PERCENT', '30');
EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'SHWOO_T1', 'DEGREE', '10');
EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'SHWOO_T1','METHOD_OPT', 'FOR ALL INDEXED COLUMNS SIZE AUTO');




-- 개별 통계정보 설정 내용확인. ( new 11g )


Syntax


DBMS_STATS.GET_PREFS (
   pname     IN   VARCHAR2,
   ownname   IN   VARCHAR2 DEFAULT NULL,   tabname   IN   VARCHAR2 DEFAULT NULL)
 RETURN VARCHAR2;




SELECT DBMS_STATS.GET_PREFS('ESTIMATE_PERCENT' , USER, 'SHWOO_T1') FROM DUAL;
SELECT DBMS_STATS.GET_PREFS('DEGREE' , USER, 'SHWOO_T1') FROM DUAL;
SELECT DBMS_STATS.GET_PREFS('METHOD_OPT' , USER, 'SHWOO_T1') FROM DUAL;
SELECT DBMS_STATS.GET_PREFS('GRANULARITY' , USER, 'SHWOO_T1') FROM DUAL;


-- 전체 현재 통계정보 설정 내용확인.


Syntax


DBMS_STATS.GET_PARAM (
   pname     IN   VARCHAR2)
 RETURN VARCHAR2;




SELECT DBMS_STATS.GET_PARAM('DEGREE') FROM DUAL;
SELECT DBMS_STATS.GET_PARAM('METHOD_OPT') FROM DUAL;
SELECT DBMS_STATS.GET_PARAM('GRANULARITY') FROM DUAL;
SELECT DBMS_STATS.GET_PARAM('ESTIMATE_PERCENT') FROM DUAL;
SELECT DBMS_STATS.GET_PARAM('CASCADE') FROM DUAL;
SELECT DBMS_STATS.GET_PARAM('NO_INVALIDATE') FROM DUAL;






-- Schema 또는 TABLE 레벨에서 통계 정보 수집


Syntax


DBMS_STATS.GATHER_SCHEMA_STATS ( 
   ownname          VARCHAR2, 
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), 
   block_sample     BOOLEAN  DEFAULT FALSE, 
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')), 
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), 
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')), 
   stattab          VARCHAR2 DEFAULT NULL, 
   statid           VARCHAR2 DEFAULT NULL, 
   options          VARCHAR2 DEFAULT 'GATHER', 
   objlist          OUT      ObjectTab,
   statown          VARCHAR2 DEFAULT NULL, 
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE')),
  force             BOOLEAN DEFAULT FALSE,
  obj_filter_list  ObjectTab DEFAULT NULL);
   
DBMS_STATS.GATHER_SCHEMA_STATS ( 
   ownname          VARCHAR2, 
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), 
   block_sample     BOOLEAN  DEFAULT FALSE, 
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'), 
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')), 
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), 
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')), 
   stattab          VARCHAR2 DEFAULT NULL, 
   statid           VARCHAR2 DEFAULT NULL, 
   options          VARCHAR2 DEFAULT 'GATHER', 
   statown          VARCHAR2 DEFAULT NULL, 
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE'), 
   force            BOOLEAN DEFAULT FALSE,
   obj_filter_list  ObjectTab DEFAULT NULL);




Syntax


DBMS_STATS.GATHER_TABLE_STATS (
   ownname          VARCHAR2, 
   tabname          VARCHAR2, 
   partname         VARCHAR2 DEFAULT NULL,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), 
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),  -- or 'FOR ALL COLUMNS SIZE 1',
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'), 
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL, 
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT  to_no_invalidate_type (get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);








EX Syntax )


EXEC DBMS_STATS.GATHER_TABLE_STATS ( ownname => 'SHWOO', tabname => 'SHWOO_T1', - 
  estimate_percent=> 100, granularity=>'ALL', degree=> 4 , cascade=>true );




EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER); -- USER : 수행하는 기본 DEFAULT 유저
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'SHWOO_T1');  




아래 참고 사이트에서 더 많은 DBMS_STATS 에 대한 New 11g 를 확인 할 수 있다.


참고사이트 : http://psoug.org/reference/dbms_stats.html
                   http://ukja.tistory.com/86

댓글 없음:

댓글 쓰기

팔로어