오래간만에 궁금한 점이 있어 질문합니다.
오늘 회의를 하다가 어떤 분이 말씀하신게 있는데 궁금해서 가능한지 여쭤봅니다.
그분이 말씀하시길...
DB에서 하나의 테이블에 많은 데이터가 있습니다.
해당 테이블에 2013년 이전 데이터는 거의 Fix된 데이터이기에 IUD가 자주 발생하지 않습니다.
2014년 이후 데이터는 IUD가 자주 발생을 하구요.
색인작업을 새벽에 하는데 2~3시간 걸린다고 합니다.
그래서 요지는
이 테이블의 데이터를 구분을 지어서 IUD가 자주 발생하는 것에 대해서만 색인을 하는건 어떤가 이렇게 말씀하셨는데
하나의 테이블에 그룹을 지어 색인이 가능한지 고수님들에게 질문합니다.
날이 많이 추운데 건강 잘 챙기세요.
-- 말씀하신 종류의 작업이라면 partitioning + parallel 을 사용하셔야 겠군요. -- 인덱스 생성시 (local partitioned index) 파티션 갯수만큼만 병렬도(dop)를 사용할수 있는데 -- 더 좋은 방법은 unusable로 먼저 인덱스를 생성하고 각 partition별 충분한 dop로 -- rebuild를 함으로써 dop를 높힐수 있습니다. -- rebuild시 파티션별로 따로 스크립트를 만들어 프로그램병렬처리 함으로써 더욱 극대화 시킬수 있겠죠. -- 여담이지만 index 의 재생성은 drop & create 과 rebuild가 있는데 버전별로 주의를 요구합니다. -- 10g 일경우 인덱스 rebuild후 inner로 풀릴때 index root block buffer pinning이 안되는 경우가 있습니다. -- 해당 테이블이 참조 정보로 쓰일때 치명적인 결함이 될수 있습니다.(10g버그) -- 실행계획을 잘 보시고 그럴때는 drop & create index 방법을 채택하시는게 좋습니다.