반응형

흠...

병렬 인덱스가 성능을 하락 시키는 경우가 많다...

경합이라던지..

잘써야 하는데,

대부분의 사이트에는 아무런 생각없이(?) 가져다 쓰기 바쁘다...

고로...

일괄적으로 조회나 수정할 때 사용하는 쿼리 하앍..

우선

PARALLEL 옵션의 차수 Degree 를 통회 조회하는 방법


 SELECT *
    FROM  DBA_INDEXES -- Dictionary를 통해 indexes로 끝나는 것을 모두 조회하여도 됨...
   WHERE DEGREE NOT IN ('1','DEFAULT','0')
       AND OWNER NOT IN ('SYS','SYSTEM','WMSYS', 'OUTLN', 'TSMSYS', 'SYSMAN') 
 

EX) 병렬 옵션의 차수가 8인 인덱스를 일괄적으로 4로 변경 하기 !

 SELECT 'ALTER INDEX ' || OWNER || '.' || INDEX_NAME || ' PARALLEL(DEGREE 4);'
     FROM DBA_INDEXES
   WHERE DEGREE = '8'
       AND OWNER NOT IN ('SYS','SYSTEM','WMSYS', 'OUTLN', 'TSMSYS', 'SYSMAN')        
 
간단히 참고용으로 작성함... 
반응형
반응형
index 생성은 크게 아래와 같은 세 과정을 통해 생성이 됩니다.

[1. 메모리 및 temp tablespace를 이용한 sort] -> [2. sort 된 data를 통한 temporary segment생성 ] -> [3. index로 변신] 

3번 과정은 순간적으로 이루어 지기 때문에 시간 산정에서 의미가 없다고 볼때 1,2번 과정을 모니터링하면 진행 정도를 확인 할 수
있습니다.

1. sort 모니터링
select SQL_ID,BLOCKS*8/1024 Mbytes from v$sort_usage;

2. temporary segment 생성 모니터링
select segment_name,bytes/1024/1024,tablespace_name from dba_segments where segment_type='TEMPORARY'; 
반응형

+ Recent posts