Index rebuild에 관련된 잘못된 미신들에 대한 자료입니다.
대부분의 DBA들이 index가 delete, insert를 반복하면서 불필요하게
커지고 이것이 성능을 저하시킨다고
생각해서......... 주기적으로 (한달에 한번) 모든 index를 무조건
rebuild 해주는 것이 궁극적으로 성능을 향상시킨다고 믿고 있습니다.
그러나 몇가지 경우를 제외하고는 대부분 index rebuild는 불필요하며
우리가 옳다고 믿고 있는 상식이 틀렸음을 알 수 있습니다.
(물론 재구성 작업 자체가 불필요하다는 것이 아니라, 맹목적인
일괄적 재구성은 불필요하다는 것입니다. 반드시 필요한 경우만
체크해서 해주는 것이 올바르다는것이죠.)
이 글의 내용을 요약하자면...
1. 대부분의 인덱스는 재구성(rebulid)이 필요하지 않다.
2. Oracle B*tree 인덱스는 Unbalance해지기 쉽고,
재구성을(rebulid) 해주어야 한다는 것은 미신이다.
3. 인덱스에서 삭제된 공간은 죽은 나무처럼 공간만 차지하고
있으며, 시간이 지날수록 재구성을 해주어야 한다는 것은 미신이다.
4. 인덱스가 'x' 레벨에 도달한다면, 비효율적이 되고 재구성이
필요해진다는 것은 미신이다.
(역자주: BLEVEL 을 말하는 것임. )
5. 클러스터링 팩터가 나쁜 인덱스는 재구성을 해주어야한다는 것은
미신이다.
6. 성능을 향상시키기기 위해, 인덱스를 주기적으로 재구성할 필요가
있다는 것은 미신이다.
Index 재구성에 대해서 아래 문서들을 추가적으로 읽어보시기
바랍니다.
http://asktom.oracle.com/pls/ask/f?p=4950:8:11955011982677823120::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:6601312252730,
http://www.actoug.org.au/Downloads/oracle_index_internals.pdf
http://www.e-dba.net/site/full_article.asp?id=1
http://www.dbazine.com/jlewis14.shtml
|