Oracle 데이터베이스에서 단일인덱스를 생성하고 사용하는 간단한 예시입니다.

실무에서 주로 복합인덱스를 사용하나 심플하게 이해하기 쉽도록 단일인덱스를 예로 들었습니다. 


1. 테이블 생성

CREATE TABLE employees (
    emp_id NUMBER PRIMARY KEY, -- 기본적으로 PRIMARY KEY는 인덱스가 생성됩니다.
    emp_name VARCHAR2(100),
    department_id NUMBER,
    salary NUMBER
);

2. 기본 인덱스 생성

예를 들어, department_id 컬럼에 자주 검색이 이루어진다고 가정합니다.

(인덱스가 컬럼 하나로 이루어져 있으므로 단일인덱스)

-- department_id 컬럼에 인덱스 생성
CREATE INDEX idx_department_id ON employees(department_id);

3. 데이터 삽입

INSERT INTO employees VALUES (1, 'Alice', 10, 5000);
INSERT INTO employees VALUES (2, 'Bob', 20, 6000);
INSERT INTO employees VALUES (3, 'Charlie', 10, 7000);

4. 인덱스 활용 쿼리

인덱스를 사용하여 department_id로 데이터를 검색합니다.

-- WHERE 조건에 의해 department_id 인덱스가 활용됨
SELECT * 
FROM employees 
WHERE department_id = 10;

Oracle은 department_id에 생성된 인덱스를 사용하여 검색 속도를 높입니다.


5. EXPLAIN PLAN으로 확인

EXPLAIN PLAN을 사용해 인덱스가 사용되는지 확인합니다.

EXPLAIN PLAN FOR
SELECT * 
FROM employees 
WHERE department_id = 10;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());

결과에서 INDEX RANGE SCAN 또는 INDEX UNIQUE SCAN이 표시되면 인덱스가 사용된 것입니다.


6. 인덱스 삭제

더 이상 필요하지 않은 인덱스는 삭제할 수 있습니다.

DROP INDEX idx_department_id;

이 예제는 인덱스를 간단히 생성하고 활용하는 과정을 보여줍니다. 

 

+ Recent posts