본문 바로가기
DB/SQL 튜닝

인덱스 리빌드(index rebuild) 성능개선의 원리!!

by 애플 로그 2021. 1. 1.
반응형

 

인덱스 리빌드의 이유

 

인덱스 파일은 생성후에 DML 을 만복하다보면 성능이 저하됨.

생성된 인덱스는 트리구조를 가지는데 DML 반복하다보면 트리의 한쪽이 무거워져

전체적인 트리의 깊이가 깊어짐.

 

 

< 예 시 >

 

첫번째 블럭 : 1 2 3 4 5

 

두번째 블럭 : 3 4 5

 

첫번째 블럭에서  3 4 5 를 delete문을 수행하면 논리적으로만 삭제임

 

다시 쓰면 인덱스에서 3 4 5 자리는 물고 있어서 

 

다음 블럭에 3 4 5를 쓴다.

 

그래서 더 안 좋다.

 

"인덱스리빌더"를 통해서 물고 있는 부분 회수가 가능하다

 

인덱스 리빌더 하면 성능이 호전되는 이유는 그것이라고 해요.

 

 

인덱스 리빌드의 구분

 

alter index "owner.index_name" rebuild;  

 

작업이 완료된후 쿼리수행해서 index 가 조회되는지 확인 필요.

 

 

인덱스 조회 구문

 

SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'CUSTOMERS';

 

인덱스의 삭제 구문

 

DROP INDEX [인덱스 명]

댓글