본문 바로가기

자린고비 독학하기/자린고비 코딩하기

SQL - INDEX

반응형

 

 

INDEX -인덱스 

  • 명령문 처리 속도를 향상시키기 위한 데이터베이스 객체 
  • 책 뒤쪽에 있는 인덱스 페이지를 떠올리면 연상이 쉬움 
  • 기본적으로 순서 없이 저장하는 레코드의 컬럼을 색인화하여 파일에 저장해 두기 때문에, 처리 속도가 빨라짐
  • USER_INDEXES, USER_IND_COLUNNS: 데이터 딕셔너리 뷰에서 생성된 모든 인덱스 확인 가능

 

인덱스 사용의 장단점

 

장점 단점
  • 검색 속도가 빨라짐 
  • 시스템 부하를 줄여 시스템 전체 성능이 향상
  • 인덱스 생성에 시간이 걸리며, 인덱스를 위한 추가 공간 필요
  • DML 사용이 잦을 경우는 오히려 성능 저하 

 

 

USER_IND_COLUMNS 딕셔너리에서 인덱스를 확인할 수 있다.

 

 

인덱스 생성 / 제거

  • CREATE
  • DROP

 

 

 

CREATE

  • 기본키나 유일키 제약 조건이 없는 컬럼에 대해서 생성 가능
  • 기본키나 유일키는 자동 생성됨

 

인덱스가 없을 때 vs 사용할 때

 

INDEX를 설정하지 않은 행을 찾는 모습. 전체 테이블을 처음부터 끝까지 탐색하기 때문에 0.04초가 소요되었다.

 

 

idx_emp23_ename이라는 이름으로 emp23 테이블의 ename 컬럼에 인덱스를 추가해 주었다. 아래는 emp23 테이블의 인덱스 값을  조회하는 쿼리.

 

 

인덱스를 설정한 뒤 찾았기 때문에, 탐색 시간이 0.04초로 줄어들었다.

 

 

DROP 

 

설정한 인덱스를 DROP 인덱스를 통해 삭제할 수 있다.

 

 

REBUILD

  • 인덱스가 생성된 이후 새로운 행을 추가하거나 삭제하면 DB에 큰 부담을 주게 됨
  • 만든 인덱스를 간헐적으로 재생성해 주는 것이 조금 더 빠르게 사용하는 방법

 

종종 인덱스를 REBUILD 해 주는 것이 필요하다.

 

 

 

 

 

반응형

'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글

SQL - DCL  (0) 2019.08.05
SQL - 시퀀스 (SEQUENCE)  (1) 2019.08.05
SQL - 뷰 (VIEW)  (0) 2019.08.05
SQL - 트랜잭션  (0) 2019.08.02
SQL - DML  (0) 2019.08.01