![[DBMS/Oracle] 인덱스(INDEX)](https://blog.kakaocdn.net/dna/b0Y1Im/btr3HVP9DNA/AAAAAAAAAAAAAAAAAAAAACyieMrH_2_No2qeU2LJs1-bB-SQ79rvRagYrgakNpsf/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1764514799&allow_ip=&allow_referer=&signature=hBH3zq8CW9XZRBtSy4cI84Le1K0%3D)
인덱스(INDEX)
- 특정 자료의 검색효율을 높이기 위한 객체 
- DB SERVER의 성능을 결정하는 요소가 검색 능력기며, SERVER의 부하를 줄여 전체 성능을 향상 
- 단점
  . 생성에 시간 및 공간이 소요
  . 자료의 삽입,삭제,수정이 발생되면 인데스도 변경이 요구됨 
  . 인덱스를 유지관리하는데 많은 시간이 소요 
- 종류 
  . Unique Index, Non Unique Index
  . Single, Composite 
  . Normal, Bitmap, Function Based Normal...etc
사용형식)
  CREATE[UNIQUE|BITMAP] INDEX 인덱스명
    ON 테이블명(컬럼명[,컬럼명,...]) [ASC|DESC]- 'UNIQUE|BITMAP' : 생성될 인덱스의 종류, 기본은 NON-UNIQUE, NORMAL INDEX 임 
- '테이블명(컬럼명[,컬럼명,...])' :  인덱스가 적용될 테이블명과 인덱스 구성에 사용될 컬럼명(들) 기술 
- 'ASC|DESC' : 인덱스 생성방식 기본은 ASC임
사용예)
  SELECT MEM_ID,MEM_NAME,MEM_ADD1||' '||MEM_ADD2
    FROM MEMBER
   WHERE MEM_REGNO2='2458323'; --p001,(0.002)
-- 인덱스 생성   
  CREATE INDEX idx_mem_regno2
      ON MEMBER(MEM_REGNO2);
-- 인덱스 삭제
  DROP INDEX idx_mem_regno2;
-- 테이블 생성
  CREATE TABLE TEMP
  AS 
    SELECT * FROM CART,BUYPROD,MEMBER;
    
  SELECT * FROM TEMP  
  
--     
  SELECT MEM_ID,MEM_NAME,CART_NO
    FROM TEMP
   WHERE MEM_REGNO2='4382532'
     AND CART_PROD='P202000003'--(0.39초)
     
  CREATE INDEX idx_temp ON TEMP(mem_id,CART_PROD);--(0.278초)
-- DROP TABLE TEMP;**인덱스 재구성   
- 테이블의 저장위치가 변경된 경우(테이블 스페이스 변경) 
- 자료의 삽입/삭제가 많이 발생된 경우 
(사용형식)
  ALTER INDEX 인덱스명 REBUILD'DBMS' 카테고리의 다른 글
| [DBMS/Oracle] IF문, 커서(CURSOR), 반복명령 (0) | 2023.03.18 | 
|---|---|
| [DBMS/Oracle] PL/SQL(Procedual LANGUAGE SQL) (0) | 2023.03.18 | 
| [DBMS/Oracle] 동의어(SYNONYM) (0) | 2023.03.17 | 
| [DBMS/Oracle] 시퀀스(SEQUENCE) (0) | 2023.03.17 | 
| [DBMS/Oracle] VIEW 객체 (0) | 2023.03.17 |