[질문]하나의 테이블에 데이터를 나누어 색인이 가능한가요? 0 6 2,297

by 윈짱천사 [DB 기타] [2015.03.10 17:50:53]


오래간만에 궁금한 점이 있어 질문합니다.

오늘 회의를 하다가 어떤 분이 말씀하신게 있는데 궁금해서 가능한지 여쭤봅니다.

그분이 말씀하시길...

DB에서 하나의 테이블에 많은 데이터가 있습니다.

해당 테이블에 2013년 이전 데이터는 거의 Fix된 데이터이기에 IUD가 자주 발생하지 않습니다.

2014년 이후 데이터는 IUD가 자주 발생을 하구요.

색인작업을 새벽에 하는데 2~3시간 걸린다고 합니다.

그래서 요지는

이 테이블의 데이터를 구분을 지어서 IUD가 자주 발생하는 것에 대해서만 색인을 하는건 어떤가 이렇게 말씀하셨는데

하나의 테이블에 그룹을 지어 색인이 가능한지 고수님들에게 질문합니다.

날이 많이 추운데 건강 잘 챙기세요.

by DJ [2015.03.10 18:43:40]

해당 Table을 Partition Table로 구성하시고 2013년 이전 data를 하나의 Partition에 이후 데이터를 다른 Partition 두고 해당 Partition 만 Index rebuild 하실 수 있습니다.

Partition 으로 구성이 가능한지는 모르겠네요.


by 창조의날개 [2015.03.10 19:46:57]

인덱스도 파티셔닝이 가능합니다.

http://wiki.gurubee.net/pages/viewpage.action?pageId=26743087


by 백면서생 [2015.03.10 20:35:43]

-- 매일 색인작업을 하시는 이유가 뭔가요? 

 


by 윈짱천사 [2015.03.11 09:29:47]

그부분은 제파트가 아니라 정확히 알진 못하는데요.

R&D 정보 중에 연구자 정보가 있는데,

실시간으로 기관에서 연계되어 한곳에 적재를 합니다.

적재한 정보를 여러단계를 거치는데,

BR 체크도 하고, 정제를 거쳐서 최종정보로 만들어 대국민 서비스를 합니다.

그과정에서 매일 새벽에 색인작업을 하는것 같습니다.

 

 처음으로 인덱스도 파티셔닝이 가능한거 알게됐습니다. ^^*

답변 감사합니다. 행복한 하루 되시길..


by 백면서생 [2015.03.11 10:10:47]

-- 말씀하신 종류의 작업이라면 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 방법을 채택하시는게 좋습니다.

 


by 윈짱천사 [2015.03.11 10:19:29]

백면서생님.. 답변 감사합니다.

좋은 정보 얻고 갑니다. ^^*

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입