본문 바로가기

Database/Oracle

INDEX

    index : 색인, 검색
    원하는 정보의 위치를 빠르고 정확하게 알아낼 수 있는 방법
    --자동생성 : Primary Key, Unique Key 일 경우에는 내부에서 자동으로 생성됨
    --수동생성 : Query문
    
    생성했을 때 효율적인 경우
    1. where절이나 join조건 안에서 자주 사용되는 column (주로 외래키 : 외래키는 PK,UK로 자동설정되어있음)
    2. null 값이 많이 포함되어있는 컬럼 (comm, maniger_id)
    3. where절이나 join조건 안에 두개이상을 사용하는 컬럼
    
    생성했을 때 비효울적인 경우
    1. table의 data의 수(row)가 적을 때(3000개 이하)
    2. table이 자주 갱신되는 경우

 

 

 

 

 

SELECT절로 INDEX생성 확인 결과 값 (1번은 자동, 2번은 수동)

 

 

--테이블 생성(기존 EMPLOYEES 테이블 COPY)

-- 카피 : 데이터 포함. (미포함은 WHERE절에 조건성립안되는 것 추가), 카피는 제약조건 안따라옴, CHECK만 같음

CREATE TABLE EMP_COPY
AS
SELECT
    *
FROM employees;     

 

 

 

--자동생성

ALTER TABLE EMP_COPY
ADD
CONSTRAINT PK_EMPCOPY_01 PRIMARY KEY(EMPLOYEE_ID);  --PK생성, 인덱스에 자동추가

 

 

--강제 생성(수동)

 

CREATE INDEX EMP_INDEX01
ON EMP_COPY(MANAGER_ID);

 

 

--INDEX 확인

--자동생성 INDEX확인
SELECT
    *
FROM ALL_INDEXES
WHERE index_name IN('PK_EMPCOPY_01');           --이름으로 검색
--강제생성 INDEX 확인
SELECT
    *
FROM ALL_INDEXES
WHERE index_name IN('EMP_INDEX01');  

 

 

 

 

 

 

 

 

 

 

 

'Database > Oracle' 카테고리의 다른 글

work 06 (view)  (0) 2020.06.26
View  (0) 2020.06.26
Sequence(SEQ), 동의어  (0) 2020.06.25
무결성 table 생성과 key, 외래키  (0) 2020.06.25
table 생성 및 셋팅  (0) 2020.06.24