IT 개발자_S

DB 성능 최적화 Reorg 본문

IT

DB 성능 최적화 Reorg

Soso12 2017. 8. 11. 22:17
반응형

Oracle Reorg란


안녕하세요. 이번 포스팅 글은  Oralce의 Reorg에 관한 내용입니다.

먼저 Oracle의 Reorg의 개념 먼저 알아보겠습니다.

Reorg의 개념이란 일종의 디스크 조각모음과 같다고 생각하시면 될 것 같습니다.

DB의 데이터블록을 효율적으로 관리하여 최적의 성능을 만들어주는 방법이라고 할 수 있습니다.


그렇다면 왜 데이터블록으로 인해 DB의 성능이 저하 되면서 문제가 발생될까요?

이에 대한 대답은 

Oracle DB를 사용하게 된다면 DB의 특징에 맞게 데이터를 Insert, delete 등 DML 작업이 이루어지면서 

마치 디스크 조각이 깨지듯이 DB의 데이터들이 뒤죽박죽 효율적으로 저장되지 않아 

 DB의 성능 까지 영향을 미치기 때문입니다. 

사진을 참고하면 좀더 이해가 쉬울 것 같습니다.

아래의 사진처럼 처음에는 데이터 블록이 빈공간 없이 효율적으로 데이터블록에 담겨져있는데

사용자의 행동의 의해 데이터가 변경되면서 데이터를 효율적으로 저장되지 못하였습니다.


이때 데이터 블락들이 최적화되게 저장되지 않아 DB의 성능이 저하되는 문제가 생깁니다.

여기서 DB의 성능이 저하되는 문제는 불필요한 공간으로 인한  DB 성능 저하 뿐만 아니라 

HWM(High Water Mark)때문이기도 합니다.

실제 데이터는 HWM의 앞에 위치하여 HWM위치만큼 조회 할 필요가 없지만 데이터 추출시 HWM의 위치까지 조회하여 데이터를 추출하기 때문에 불필요한 자원을 사용하기때문에 

DB성능을 저하시키는 것입니다.


이와 같은 문제를 해결하고 DB성능 향상을 위한 방안이 바로 Reorg 방법입니다.

추가로 Oracle 9i까지에서는 ALTER TABLE MOVE 명령어나 다른 테이블 스페이스로 이동하여

일종의 디스크조각모음과 같이 데이타 블록을 최적화하여 빈공간 없이 효율적으로 사용하게 하였습니다.

하지만 이때의 단점은 DB를 오프라인모드인 상태에서만 다른 테이블스페이스 이동이나 

ALTER TABLE MOVE 명령어를 사용했어야 했죠 

이를 Oracle에서는 10g에서는 온라인모드에서도 위와 같은 문제와 해결을 할 수 있게 Reorg의 기술을 지원하여 

10g 이상부터는 온라인모드에서 단편화 문제를 해소할 수 있게 되었습니다.


반응형
Comments