오라클 객체 - INDEX

jsbak·2020년 9월 3일
0

DB

목록 보기
31/35

INDEX

  • 검색효율을 효율적으로 수행하기 위한 객체

1) 인덱스가 필요한 컬럼

  • 자주 검색해야하는 컬럼
  • where절에서 동등연산자('=')을 사용하는 컬럼
  • 기본키과 외래키
  • 조인(조인조건에 사용)이나 정렬(ORDER BY)에 사용되는 컬럼

2) 인덱스의 종류

(1) Unique/Non-Unique
중복 값을 허용하는지 여부에 다른 분류
. Non-Unique는 중복 값 허용.
. Null도 사용가능하나 (기본키와 외래키 인덱스는 제외)한번만 가능
(2) 자동 index
. 테이블 생성시 Pk, Unique 조건 부여시 생성
(3) Normal Index(B-Tree Index)
. Default Index
. 트리구조 사용
. ROWID(물리적 주소)와 컬럼 값을 조합하여 산출된 주소 사용
(4) Bitmap Index
. 관계차수가 적은 경우 효율적
. 자료변동(추가,변경,삭제)가 많은 경우 비효율
. ROWID와 컬럼 값을 이진으로 조합한 주소사용
(5) Function-Based Index
. 함수가 사용된 컬럼을 인데스컬럼으로 선택한 경우
. 조건절에 함수사용이 많은 경우 효율적

  • 사용형식
 CREATE [UNIQUE|BITMAP] INDEX 인덱스명
     ON 테이블명 (컬럼명 [,컬럼명],.....][ASC|DESC]);

예시)회원테이블에서 회원명으로 인덱스를 생성

 CREATE INDEX IDX_MEMBER
     ON MEMBER(MEM_NAME);
--
 create index idx_buyer
   on buyer(substr(buyer_id,5)||buyer_name);
 --  
**인덱스 재 생성
 - 다른 테이블 스페이스로 테이블이 이동된 경우
 - 자료의 변경이 심각하게 발생된 경우 
--
alter index 인덱스명 rebuild;
profile
끄적끄적 쓰는곳

0개의 댓글