Oracle/운영

통계정보 복사하기 (partition table)

취미툰 2021. 11. 19. 16:37
반응형

운영중에 테이블의 통계정보를 동일하게 맞춰달라는 요청을 받고 수행한 내역을 정리한 글입니다.

 

요청해준 테이블은 파티션테이블이었습니다.

 

버전 Oracle 12.2.0.1

 

1.테이블의 통계정보 확인

LAST_ANALYZED컬럼을 확인해보면 날짜가 다른것을 확인할 수 있습니다. 즉, 통계정보가 다르다는 것이고, 202110의 통계정보를 복사하여 동일하게 맞춰줄 것입니다.

SQL> select owner,table_name,partition_name,NUM_ROWS,blocks,last_analyzed from dba_tab_statistics
where table_name='DM_FIM030M'
and partition_name in ('PT_FIM030M_202111','PT_FIM030M_202110')
order by partition_position desc;

OWNER    TABLE_NAME    PARTITION_NAME       NUM_ROWS         BLOCKS       LAST_ANALYZED              
-------- ------------- -------------------- ---------------- ------------ -------------------------- 
EDWOWN   DM_FIM030M    PT_FIM030M_202111            13328050       207872 2021/11/08 12:45:52       
EDWOWN   DM_FIM030M    PT_FIM030M_202110            13328050       207872 2021/11/09 11:28:25

 

2.기존 통계정보 백업 (백업이 필요하지 않는 경우에는 하지않아도 됩니다)

 

dbms_stats의 명령어를 이용하여 기존 통계정보를 백업받습니다.

--통계테이블 생성
SQL> exec dbms_stats.create_stat_table('AAA','STATS_PT_FIM030M_202111','USERS');

PL/SQL procedure successfully completed.


--export 수행
SQL> exec DBMS_STATS.EXPORT_TABLE_STATS(ownname => 'EDWOWN',tabname => 'DM_FIM030M',STATTAB=>'STATS_PT_FIM030M_202111',statown=> 'AAA',CASCADE=>TRUE);


PL/SQL procedure successfully completed.

 

 

3.통계정보 COPY

SQL> exec DBMS_STATS.COPY_TABLE_STATS('EDWOWN','DM_FIM030M', srcpartname=> 'PT_FIM030M_202110', dstpartname=> 'PT_FIM030M_202111');

PL/SQL procedure successfully completed.

 

4.정보확인

last_analyzed 컬럼의 날짜가 동일하게 맞춰진 것을 확인 할 수 있습니다.

SQL> select owner,table_name,partition_name,NUM_ROWS,blocks,last_analyzed from dba_tab_statistics
where table_name='DM_FIM030M'
and partition_name in ('PT_FIM030M_202111','PT_FIM030M_202110')
order by partition_position desc;

OWNER    TABLE_NAME    PARTITION_NAME       NUM_ROWS         BLOCKS       LAST_ANALYZED              
-------- ------------- -------------------- ---------------- ------------ -------------------------- 
EDWOWN   DM_FIM030M    PT_FIM030M_202111            13328050       207872 2021/11/09 11:28:25       
EDWOWN   DM_FIM030M    PT_FIM030M_202110            13328050       207872 2021/11/09 11:28:25

 

 

반응형