반응형

인덱스 리빌드 하기, 리빌드 끝난 후에 pallel, logging 설정을 없앤다

nogging index 변경하는 쿼리--------------------------------------------------------------------------------------------------------------------------------
select  'ALTER INDEX ' || owner ||'.'||INDEX_name || ' logging;' from dba_indexes where STATUS ='VALID' AND LOGGING='NO'

일반 INDEX----------------------------------------------------------------------------------------------------------------------------------
그냥 인덱스 리빌드시

select 'alter index '||owner||'.'||SEGMENT_name||' rebuild PARALLEL 8;' from DBA_SEGMENTS where tablespace_name='검색할 테이블스페이스' AND owner='유저명'AND SEGMENT_TYPE='INDEX';
select 'alter index '||owner||'.'||SEGMENT_name||'  NOPARALLEL;' from DBA_SEGMENTS where tablespace_name=검색할 테이블스페이스' AND owner='유저명'AND SEGMENT_TYPE='INDEX';

ex)
ALTER INDEX SCOTT.IDX_TABLE_IX05 REBUILD PARALLEL 8 ONLINE;
ALTER INDEX SCOTT.IDX_TABLE_IX05  logging NOPARALLEL ;


다른 테이블스페이스 이동시 
select  'ALTER INDEX ' || owner ||'.'||segment_name || ' REBUILD TABLESPACE 이동할 TS명 parallel 코어수 nologging;'  from dba_segments where tablespace_name= '검색할 테이블스페이스' and SEGMENT_TYPE= 'INDEX' ;

select  'ALTER INDEX ' || owner ||'.'||segment_name || ' REBUILD tablespace imsi_index parallel 2 nologging;'  from dba_segments where tablespace_name= '검색할 테이블스페이스' and SEGMENT_TYPE='INDEX';
select  'ALTER INDEX ' || owner ||'.'||segment_name || ' logging  NOPARALLEL;'  from dba_segments where tablespace_name= '검색할 테이블스페이스' and SEGMENT_TYPE='INDEX';

ex1) ALTER INDEX SCOTT.PK_TABLE REBUILD tablespace IMSI_INDEX parallel 2 nologging;
 ALTER INDEX SCOTT.PK_TABLE logging noparallel;


파티션 INDEX----------------------------------------------------------------------------------------------------------------------------------
SELECT 'ALTER INDEX ' || index_owner ||'.'|| index_name || ' REBUILD PARTITION ' || partition_name || ' tablespace 이동할 테이블스페이스 PARALLEL 4 nologging;'  from dba_ind_partitions
 WHERE index_owner ='SCOTT' and TABLESPACE_NAME='검색할 테이블스페이스';
SELECT 'ALTER INDEX ' || index_owner ||'.'|| index_name || ' NOPARALLEL logging;'  from dba_ind_partitions WHERE index_owner ='SCOTT' and TABLESPACE_NAME='검색할 테이블스페이스';


파티션 된 인덱스 리빌드 하기, 리빌드 끝난 후에 pallel, logging 설정을 없앤다
alter index  SCOTT.IDX_PTABLE_01 rebuild  PARTITION p200602 tablespace 이동할 테이블스페이스  nologging parallel 8 ;
alter index  SCOTT.IDX_PTABLE_01 noparallel logging;

파티션 테이블
ALTER INDEX index_name REBUILD PARTITION partition_name
      [ TABLESPACE tablespace_name]
      [ PARALLEL para_num ]
      [ LOGGING or NOLOGGING ]

index_name : 변경하고자 하는 인텍스 명
partition_name : 변경 하고자 하는 PARTITION INDEX명
tablespace_name : 생성시킬 테이블스페이스명을 지정한다.
                  생략시 기존에 생성되어 있는 테이블 스페이스에 재생성된다.
※ 기존의 테이블 스페이스와 다른 테이블스페이스를 지정하면 해당 인덱스가 이동하는 결과를 얻을 수 있다. (테이블스페이스 변경)
para_num : PARALLEL 처리(병렬처리)를 하고자 하는 경우에 사용한다.
           처리할 데이터가 많은 경우 CPU가 지정한 para_num 수치만큼 프로세스를 분리하여
           처리한다.
LOGGING or NOLOGGING : LOG처리를 할 것인지를 결정한다. 대량의 자료를 처리하는 경우
           NOLOGGING으로 처리하면 처리속도를 올릴 수 있다.


sup파티션 INDEX----------------------------------------------------------------------------------------------------------------------------------
SELECT 'ALTER INDEX ' || index_owner ||'.'|| index_name || ' REBUILD SUBPARTITION '||SUBPARTITION_NAME||' PARALLEL 8;' FROM dba_IND_SUBPARTITIONS WHERE  TABLE_OWNER='유저명' and TABLESPACE_NAME='검색할 테이블스페이스';
select 'ALTER INDEX ' || index_owner ||'.'|| index_name || ' noparallel logging;'  from dba_IND_SUBPARTITIONS WHERE TABLE_OWNER='유저명' and TABLESPACE_NAME='검색할 테이블스페이스';

+ Recent posts