어흥
[Oracle] Index 본문
728x90
반응형
1. 정의
: 인덱스는 DB 테이블에 있는 데이터를 빨리 찾기 위한 용도의 DB 객체이며, 일종의 색인기술이다
2. 특징
- 테이블에 Index를 생성하게 되면 Index Table을 생성해서 관리
- Index는 테이블에 있는 1개 이상의 Column을 이용해서 만들 수 있다
3. 선언
CREATE INDEX IDX_TEST ON EMPLOYEE(ID,NAME,SALARY); --IDX_TEST INDEX 생성
SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'IDX_TEST'; --생성한 인덱스들 조회
DROP INDEX IDX_TEST --IDX_TEST INDEX 삭제
4. Plan을 통한 일반호출 v.s 인덱스를 통한 호출 비교
EMPLOYEE Table에 약 180만개의 Data가 있다고 가정
----일반 호출----
SELECT ID, NAME, SALARY
FROM EMPOLYEE
WHERE SALARY>0;
----인덱스를 통한 호출----
SELECT *
FROM IDX_TEST
WHERE SALARY>0;
1) 일반 호출의 경우
: Table Access(Full) ~~~, Cost=25K, Card=2M, Bytes=39M
2) 인덱스를 통한 호출
: Index(Range Scan), Cost=9, Card=2M, Bytes=39M
결론: 최적화를 통해 시간을 절약해주는 Index를 사용하면 특정 SQL을 더 빠르게 처리할 수 있다
5. 단점
- 데이터의 변화에 대응을 하지 못한다
-> Index를 통해 얻었던 기존 정보가 변하면 Rebuild나 삭제후, 다시 만들어야 한다
- 저장공간을 차지하기 때문에 많은 Index 생성
-> 많은 공간 차지
728x90
반응형
'Oracle' 카테고리의 다른 글
[Oracle] MERGE INTO (0) | 2020.08.04 |
---|---|
[Oracle] Sequence (0) | 2020.07.22 |
[Oracle] Plan (0) | 2020.07.09 |
[Oracle] SQL (DDL, DML) (1) | 2020.07.07 |
Comments