[oracle] 오라클 view 생성 등 기초 알아보기(view, mview)
안녕하세요.
오라클을 몇년간 사용하면서 view를 그냥 생각없이 사용만 해왔습니다.
이참에 제대로된 개념과 설명을 기록해두고자 합니다.
View란 무엇일까?
- 가상의 테이블을 의미
- 데이터가 없고 SQL만 저장되어 있으며, 사용자가 접근 시 View에 들어 있던 SQL이 수행되어 결과 도출
다른 책이나 정보를 보면 메뉴판의 개념을 생각하라고 합니다.
사용자가 메뉴판을 보고 주문 시
그때 주방에서 음식을 만들어 제공한다는 개념과 같다는 말입니다.
View의 장점은 무엇이 있을까?
- View를 사용하면 사용자가 View에 접근 하는 순간 원본 테이블의 데이터를 가져오기때문에 데이터가 정확함
→ 접근하는 순간 데이터를 가져오기때문에 제약조건이나 인덱스등을 생성할 수 없음
- 어떤 결과를 조회하기위해 6개의 테이블을 Join 해야할 경우 View를 생성하여 간단히 조회 가능
이것이 전체적은 View의 개념과 장점입니다.
View에도 종류가 몇가지 있습니다.
1. 단순 View
2. 복합 View
☞ 여러개의 테이블이 Join 되어 생성되는 것
일반 View와 복합 View는 테이블의 Join만 다를뿐 생성하는 원리와 작동방식은 똑같습니다.
생성 문법
create or replace View v_dept_user
as
select d.deptno, u.user_name
from dept d, user u
where d.deptno = u.deptno;
3. INLINE View(인라인 뷰)
4. MVIEW (Materialized View)
MVIEW 관리 방법입니다.
수동으로 관리하기
DBMS_MVIEW 패키지도 수동 동기화가 가능합니다.
수동 동기화 수행
begin
dbms.mview.refresh('m_mview');
end;
/
다른 동기화 명령어
DBMS_MVIEW.REFRESH_DEPENDENT('LEE') : LEE라는 테이블을 사용하는 모든 MVIEW 동기화
DBMS_MVIEW.REFRESH_ALL_MVIEWS : 해당 사용자가 만든 모든 MVIEW 동기화
MVIEW 조회 하기
select
mview_name, query
from user_mviews
where mview_name = 'm_mview';
간단히 view에 대해서 알아보려 했는데
하다보니 길어졌네요. 저도 쓰면서 많은 공부가 된것 같습니다.
좋은하루 보내세요.
'개발 > DB' 카테고리의 다른 글
오라클 BETWEEN과 LIKE 스캔 범위를 비교 해보자 (0) | 2022.08.31 |
---|---|
오라클(oracle) 등 DB에서 IN절과 '=' 개념 차이 확인 (0) | 2022.08.30 |
[oracle] synonym(동의어) 생성 및 삭제 (0) | 2020.06.09 |
[오라클(oracle)] join update 힌트로 해결 (2) | 2020.03.04 |
[oracle]오라클 시퀀스(sequence) 생성 및 삭제 (0) | 2019.12.03 |
[오라클] 인덱스의 주의사항 및 관리방법(쿼리문 확인) (0) | 2019.12.03 |
[오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX) (6) | 2019.11.30 |