INDEX
CREATE [UNIQUE | BITMAP ] INDEX 인덱스명
ON 테이블명(컬럼명 [, 컬럼명, .... ] ) [ASC | DESC]
- ASC | DESC : 오름차순 또는 내림차순으로 된 인덱스, 기본은 ASC
- 자료 검색의 효율성을 증대 시키기 위한 객체
- DB SERVER의 성능은 검색의 효율성에 가장 민감하게 반응
- 인덱스는 자료 검색 시 전체를 비교하지 않고 각 행을 대표하는 컬럼과 해당 컬럼의
나머지 데이터가 저장된 주소로 구성된 인덱스 파일을 별도로 구성하여 검색시 인덱스를
검사하고 일치하는 값의 주소를 참조하여 나머지 자료를 추출함 - DBMS의 부하를 줄여서 DB SERVER의 전체 성능을 향상
- 단점
- 별도의 공간 필요 (인덱스 파일)
- 인덱스 파일 관리에 시간과 비용이 소요
- 자료의 지속적인 변경(수정/삭제/삽입)이 발생되는 경우 비효율적 - INDEX의 종류
- UNIQUE/NON-UNIQUE (NULL 가능(대신 중복x) 중복된 값X | 중복될 수 있음 )
- SINGLE(1개의 컬럼)/COMPOSITE INDEX(컬럼 2개 이상)
- NORMAL/BITMAP/FUNCTION BASED NORMAL INDEX
CREATE INDEX IDX_EMP_TEL
ON HR.EMPLOYEES(PHONE_NUMBER);
SELECT *
FROM HR.EMPLOYEES
WHERE PHONE_NUMBER='515.124.4269'; --소요시간 단축
CREATE INDEX IDX_MEM_HP
ON MEMBER(REPLACE(SUBSTR(MEM_HP,5,7),'-'))
SELECT *
FROM MEMBER
WHERE MEM_HP='010-3452-9877' -- 인덱스x
SELECT *
FROM MEMBER
WHERE REPLACE(SUBSTR(MEM_HP,5,7),'-')='345298' --인덱스o
인덱스의 재구성
ALTER INDEX 인덱스명 REBUILD
- 테이블과 인덱스 파일이 다른 테이블 스페이스로 이동된 경우
- 자료의 변동(삽입/삭제/변경)이 많이 발생된 직후
- 인덱스는 2진 트리구조로 구성되어 인덱스 구성항목의 삽입, 삭제, 갱신 시 인덱스가 재구성되어야 함
- 재구성의 실행을 강제시키는 명령이 REBUILD임
'DB Oracle' 카테고리의 다른 글
[Oracle] 데이터모델링 (0) | 2024.04.03 |
---|---|
[Oracle] PL/SQL (0) | 2024.04.01 |
[Oracle] SYNOYM(동의어) 객체 (0) | 2024.03.29 |
[Oracle] SEQUENCE 객체 (0) | 2024.03.29 |
[Oracle] VIEW (0) | 2024.03.28 |