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;
이 예제는 인덱스를 간단히 생성하고 활용하는 과정을 보여줍니다.
'[DB]SQLD 자격증 강좌' 카테고리의 다른 글
[SQLD-SQL 최적화 기본원리]3.조인수행의 원리 (0) | 2024.12.26 |
---|---|
[SQLD-SQL 최적화 기본원리]복합인덱스 사용 예시 (0) | 2024.12.26 |
[SQLD-SQL 최적화 기본원리]2.인덱스 기본 (0) | 2024.12.26 |
[SQLD-SQL 최적화 기본원리]1.옵티마이저와 실행계획 (0) | 2024.12.26 |
[SQLD-SQL활용]8.절차형 SQL(ORACLE) (0) | 2024.12.24 |