ORACLE 뷰(View)와 머티리얼라이즈드 뷰(MV)의 차이점
Oracle 데이터베이스에서 뷰(View)와 머티리얼라이즈드 뷰(MV)는 둘 다 데이터를 저장하지 않고, SQL 쿼리의 결과를 기반으로 동적으로 데이터를 조회하는 방법입니다. 그러나 두 개념은 동작 방식과 성능, 사용 목적에서 큰 차이를 보입니다. 이 글에서는 뷰와 머티리얼라이즈드 뷰의 차이점과 각자의 사용 사례를 다룰 것입니다.
1. 뷰(View)란?
뷰(View)는 SQL 쿼리의 결과를 가상 테이블 형태로 저장하는 객체입니다. 뷰는 데이터를 물리적으로 저장하지 않고, 기본적으로 쿼리문을 실행하여 그 결과를 반환합니다. 즉, 뷰는 하나의 SQL 쿼리로 정의된 SELECT 문의 결과를 나타내며, 실제 데이터를 저장하지 않습니다.
뷰의 특징
- 실시간 데이터 조회: 뷰는 쿼리가 실행될 때마다 실시간으로 데이터를 조회합니다.
- 데이터 저장 없음: 뷰 자체는 데이터를 저장하지 않고, 항상 쿼리 결과에 의존합니다.
- 단순한 데이터 추상화: 복잡한 쿼리문을 간단하게 사용할 수 있게 해줍니다.
- 업데이트 가능: 일부 뷰는 기본 테이블과의 관계에 따라 데이터를 업데이트할 수 있습니다.
뷰 사용 예제
CREATE VIEW employee_view AS
SELECT employee_id, first_name, last_name, department_id
FROM employees;
위 SQL은 employee_view
라는 뷰를 생성하는 예제입니다. 이 뷰는 employees
테이블에서 직원 정보만 조회하는 쿼리 결과를 제공합니다.
2. 머티리얼라이즈드 뷰(MV)란?
머티리얼라이즈드 뷰(MV)는 뷰와 유사하지만, 데이터베이스에서 물리적으로 데이터를 저장합니다. 머티리얼라이즈드 뷰는 특정 쿼리의 결과를 미리 계산하여 저장하고, 주기적으로 갱신됩니다. 이를 통해 자주 조회되는 데이터를 캐시하여 성능을 최적화할 수 있습니다.
머티리얼라이즈드 뷰의 특징
- 데이터 저장: MV는 데이터를 저장하므로 뷰와 달리 쿼리 결과를 물리적으로 보관합니다.
- 성능 향상: 자주 조회되는 쿼리의 결과를 미리 저장하므로 성능이 크게 향상됩니다.
- 주기적 갱신: 머티리얼라이즈드 뷰는 특정 주기로 갱신되거나 수동으로 갱신할 수 있습니다.
- 단점: 데이터가 실시간으로 반영되지 않으며, 갱신 주기 동안 오래된 데이터가 반환될 수 있습니다.
머티리얼라이즈드 뷰 사용 예제
CREATE MATERIALIZED VIEW employee_mv
AS
SELECT employee_id, first_name, last_name, department_id
FROM employees
WHERE department_id = 10
REFRESH FAST ON COMMIT;
위 SQL은 employee_mv
라는 머티리얼라이즈드 뷰를 생성하는 예제입니다. 이 뷰는 부서 ID가 10인 직원 정보를 미리 저장하며, REFRESH FAST ON COMMIT
옵션을 사용하여 트랜잭션이 커밋될 때마다 뷰가 갱신됩니다.
3. 뷰(View)와 머티리얼라이즈드 뷰(MV)의 차이점
특징 | 뷰(View) | 머티리얼라이즈드 뷰(MV) |
---|---|---|
데이터 저장 여부 | 데이터를 저장하지 않음 | 데이터를 저장 |
성능 | 실시간 조회에 따라 성능이 느릴 수 있음 | 미리 계산된 결과를 사용하므로 성능이 우수 |
데이터 갱신 | 실시간 갱신 | 주기적 또는 수동 갱신 |
용도 | 단순한 데이터 조회 및 가상 테이블 사용 | 성능 최적화 및 자주 조회되는 데이터 저장 |
4. 뷰(View)와 머티리얼라이즈드 뷰(MV)의 사용 사례
- 뷰(View): 실시간 데이터 조회가 필요한 경우, 또는 동적으로 데이터 필터링을 해야 하는 경우에 유용합니다.
- 머티리얼라이즈드 뷰(MV): 자주 조회되는 데이터의 성능을 최적화하고, 데이터가 크게 변하지 않는 경우 유용합니다. 예를 들어, 데이터 웨어하우스나 OLAP 시스템에서 자주 사용됩니다.
5. 마무리
Oracle 데이터베이스에서 뷰(View)와 머티리얼라이즈드 뷰(MV)는 각각 장단점이 있으며, 사용 목적에 따라 선택해야 합니다. 뷰는 실시간 데이터를 조회할 때 유용하고, 머티리얼라이즈드 뷰는 성능을 최적화할 때 중요한 역할을 합니다. 두 개념을 잘 이해하고 적절히 활용하여 데이터베이스 성능을 최적화하고, 애플리케이션의 효율성을 높일 수 있습니다.
'ORACLE' 카테고리의 다른 글
ORACLE 스토어드 프로시저(Stored Procedure)와 함수(Function) 차이점 및 예제 (0) | 2025.03.29 |
---|---|
ORACLE 효율적인 SQL 작성법과 실행 계획(Explain Plan) 분석 (0) | 2025.03.29 |
Oracle 인덱스 종류 및 성능 최적화 방법 (0) | 2025.03.28 |
오라클 주요 오류 코드 및 해결 방법 (0) | 2025.03.27 |
SQL과 PL/SQL의 차이점 및 활용법 (0) | 2025.03.27 |