인덱스 리빌드 하기, 리빌드 끝난 후에 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='검색할 테이블스페이스';
'DBMS > Oracle' 카테고리의 다른 글
Partition table shrink (0) | 2022.07.04 |
---|---|
index unusable 확인(index 깨진거 확인 쿼리) (0) | 2022.07.04 |
Index Primary 와 Foreign Key 관계 찾기 (0) | 2022.07.04 |
index pk(PRIMARY KEY) 인덱스 삭제 (0) | 2022.07.04 |
index parallerl / nologging상태 체크 (0) | 2022.07.04 |