태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[Oracle is Mad] Index Rebuild를 둘러싼 논쟁 - Part1

오라클 2007.12.20 22:00
얼마전 Oracle 관련된 교육을 하면서 다음과 같은 질문을 한 적이 있다.

Index Rebuild를 하는가? 한다면 왜, 어떤 주기로 하는가?

대답은 제 각각 이었다. 가령..
  • 2달에 한 번씩 인덱스 높이와 크기를 체크해서 기준치 이상이면 Rebuild를 한다.
  • 3달에 한번씩 인덱스 크기가 어느 정도 커지면 Rebuild를 한다.
  • 인덱스 테이블스페이스 공간 부족이 생기면 Rebuild를 한다.
Rebuild를 하는 방법은 어떤가?라는 질문에는 다음과 같은 두 가지 종류의 답변이 나왔다.
  • 새벽 시간에 Offline Rebuild(alter index i rebuild)을 수행한다.
  • 한가한 시간에 Online Rebuild(alter index i rebuild online)을 수행한다.
놀라운 것은(실제로는 전혀 놀랍지 않은 것이지만) 대부분의 시스템에서 Index Rebuild를 수행하고 있다는 것이이다. 그리고 더 놀라운 것은 본인들이 왜 Index를 주기적으로 Rebuild하고 있는지 이유를 잘 모른다는 것이다. 혹은 안다고 착각하든가...

우선 우리가 너무나 당연하게 여기는 Index Rebuild가 실제로는 대단한 논쟁 거리라는 것을 일단 말해 둔다.

Oracle Forum과 같은 온라인 커뮤니티에 "Index Rebuild를 해야 할까요?"라는 질문을 올릴려면 세계적으로 저명한 Oracle 전문가들에게 두드려 맞을 각오를 해야 한다. Index Rebuild를 수행하는 명백한 이유를 설명하지 못하면 그야말로 본전도 못찾고 서둘러 로그 아웃을 해야할 것이다.

왜 이런 일이 벌어지는 것일까? 대부분의 시스템에서 Index Rebuild를 수행하고 있음에도 불구하고, 왜 대부분의 세계적인 전문가들은 Index Rebuild에 회의적인 입장일까?

여기에는 Index에 대한 오해와 편견, 그리고 Index를 Rebuild하는 방법에 대한 무지등이 복합적으로 작용하고 있다. 하지만, 진실을 알게 되면 누구나 합리적인 판단을 할 수 있을 것으로 믿는다.

앞으로 몇 차례의 글을 통해 B*Tree 인덱스의 메커니즘과 Index Rebuild의 정체에 대해 심도깊은 논의를 해보기로 한다. 이 글이 마칠 때쯤이면 적어도 글을 접한 사람들은 Index Rebuild에 대해 좀 더 합리적인 태도를 취할 수 있을 것으로 기대한다.





신고
Trackback 0 : Comment 0

Write a comment

티스토리 툴바