oracle 18c object 통계 정보 수집
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');