ORACLE/ADMIN

oracle 18c object 통계 정보 수집

argoLee 2019. 10. 18. 17:53

1. 수집 프로시저

dbms_stats.gather_schema_stats(~~)

dbms_stats.gather_table_stats(~~)

dbms_stats.gather_index_stats(~~)

dbms_stats.gather_column_stats(~~)

 

함수에 파라미터는 des dbms_stats으로 확인

 

2. 수집 정책 지정

dbms_stats.set_database_prefs
dbms_stats.set_schema_prefs
dbms_stats.set_table_prefs

 

* column일 경우 아래와 같이 histgram 관련 설정

exec dbms_stats.set_table_prefs(
  ownname=>'TEST',
  tabname=>'TEST',
  pname=>'method_opt',
  pvalue=>'FOR COLUMNS OBJECT_TYPE SIZE 1');

 

3. 수집 통계 export and import

dbms_stats.export_schema_stats(~~)

dbms_stats.export_table_stats(~~)

dbms_stats.export_index_stats(~~)


dbms_stats.import_schema_stats(~~)

dbms_stats.import_table_stats(~~)

dbms_stats.import_index_stats(~~)

 

* 파티션일 경우 기 통계 정보 신규 파티션으로 복사

dbms_stats.cop_table_stats(~~)

 

4. table  통계 정보 수집예

exec dbms_stats.gather_table_stats('user','test');
exec dbms_stats.create_stat_table('admin','stattab');
exec dbms_stats.exprot_table_stats('user', 'test', stattab=>'stattab', statown=>'admin');
delete from test;
exec dbms_stats.import_table_stats('test','test',stattab=>'stattab', statown=>'admin');

 



출처: https://semode.tistory.com/419?category=662330 [세모데]