파티션 통계정보 일치 작업


사전에 한번은 ALL 또는 기준이 되는 특정 파티션 통계정보를 떠놔야 함.


-- 파티션별 스크립트를 만드는 SQL


part_stat_equal.sql 내용     ( 미리 만들어져 있어야 함 )

define table_owner = &1
define table_name = &2
define src_partition_name = &3


select 'exec DBMS_STATS.COPY_TABLE_STATS( '''||'&&table_owner'||''' , '''||'&&table_name'||''', '''||'&&src_partition_name'||''', '''||PARTITION_NAME||''' ,  FORCE=>TRUE); '   as scripts from dba_tab_partitions where TABLE_OWNER = '&&table_owner' and table_name='&&table_name'  ;


이걸 실행 

set head off
set feedback off
set echo off
set time off
set timing off
set verify off


예시) 유저명 TMALL

@part_stat_equal 유저명 테이블명 기준파티션명

@part_stat_equal TMALL  TR_ORD_CLM_DELVPLACE    P_200909
@part_stat_equal TMALL  TR_ORD_CLM_DELVPLACE_HIST       P_200909
@part_stat_equal TMALL  TR_ORD_STL_RFND P_200909
@part_stat_equal TMALL  TR_ORD_STLMNT_DTLS      P_200909
@part_stat_equal TMALL  TR_ORD_PRD_STAT_HIST    P_200909
@part_stat_equal TMALL  TR_SLCT_PRD_OPT P_200909
@part_stat_equal TMALL  TR_DLV_INFO_DTLS_IF     P_200909
@part_stat_equal TMALL  TR_ORD_CLM_DLV_DTLS     P_200909


위에 만든 결과에 따른 결과

exec DBMS_STATS.COPY_TABLE_STATS( 'TMALL' , 'TR_ORD_CLM_DELVPLACE', 'P_200909', 'P_200801' ,  FORCE=>TRUE);                                                                                                      
                                                                                                                                                                                                                 
....

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다