<aside>
💡
INDEX 기본
- 자동으로 만들어지는 인덱스
- PRIMARY KEY, UNIQUE에 의한 자동으로 만들어진다
- 수동인덱스
⇒ INDEX 조회
SELECT * FROM ALL_INDEXS WHERE TABLE_NAME=’테이블명’
⇒ 인덱스를 사용하면 좋은 곳
- 데이터가 많은 곳
- 삽입, 수정, 삭제가 잘 일어나지 않는 곳
</aside>
INDEX의 삭제
- 조회 성능을 높이기 위해 만든 객체지만 저장공간을 많이 차지하며 DDL 작업(INSERT, UPDATE, DELETE)시 부하가 많이 발생해 전체적인 데이터베이스 성능을 저하시킨다
- DBA는 주기적으로 INDEX를 검토하여 사용하지 않는 인덱스는 삭제하는 것이 데이터베이스 전체 성능을 향상시킬 수 있다
INDEX를 REBUILD 하기
- INSERT, UPDATE, DELETE와 같은 작업이 발생하면 인덱스의 검색 속도를 저하시키고 전체 데이터베이스 성능에 영향을 미치므로 주기적으로 INDEX를 리빌딩하는 작업을 해줘야한다
- ALTER INDEX 인덱스명 REBUILD;
인덱스가 제대로 작동하는지 확인하는 방법
- EXPLAIN PLAN 사용하기
- 실행할 쿼리 앞에 EXPLAIN PLAN FOR를 추가한다.
- 쿼리의 실행 경로를 분석
- 실행 계획 정보는 PLAN_TABLE이라는 테이블에 저장된다.
- 그 후 SELECT * FROM TABLE(DBMS_XPLAIN.DISPLAY); 명령을 실해하여 계획을 확인한다.
<aside>
💡
자동으로 만들어진 INDEX던, 우리가 수동으로 만든 INDEX건 조회할 때 사용이 되는 거라면 잘 사용이 되고 있는지 확인을 해야할 필요가 있다
</aside>