안녕하세요
작업을 하다 보니 궁금한점이 있어서 고수님들꼐 문의드립니다.
대용량테이블로써 partition table입니다.
partition을 split 작업으로 추가했습니다.
작업을 하고 나니 index들이 꺠져버렸습니다. (토드에 X로 뜨고 , 참고로 인덱스는 파티션이 아닌 일반 인덱스 입니다.)
그래서 인덱스 리빌드를 하려고 하니 데이터가 너무 많아서 temporary tablespace를 100기가를 써도 인덱스가 걸리지 않았습니다. (인덱구문은 alter index 인덱스명 rebuild; 이렇게 걸었습니다)
여기서 궁금한건 인덱스를 삭제하고 다시 거는것도 하나의 방법이 될수 있을까요?
아니면 빨리 걸수 있는 구문들이 있을까요?
데이터는 겁나 대용량입니다.
좋은의견 부탁드립니다.
우선 저도, local index 로 생성하시는 것을 권해 드립니다. (필요한 column 이 꼭 선두 column 이 아니더라도 index 를 구성하는 column 으로 포함되어 있기만 해도 되어, 대부분 local index 로 cover 가능합니다)
Index rebuild (global 포함) 는 parallel 로 수행 시 속도는 빨라 집니다. 이 경우, online option 은 함께 사용할 수 없고, temporary tablespace 를 필요로 하는 용량도 일부 증가 됩니다. temporary 사용량은 index 구성 column 의 sort 처리량에 비례하므로 (index 를 drop 하고, 재생성 하시더라도, parallel 로 수행하더라도) temporary 사용량(필요량)이 줄지는 않습니다.
alter index schema.index_name rebuild parallel 8 ; alter index schema.index_name noparallel ;
속도 향상을 위해, parallel 로 rebuild 한 경우, 반드시 alter 로 원복해 주어야 합니다