view와join의 차이점
view와join의 차이점이라..질문자께서 잘못알고 계시는데 view는 테이블이 아닙니다..view는 그 뷰쿼리문이 데이타 딕셔너리에 그대로 저장되어 있는텍스트입니다.
예를 들어 select * from tab1 a, tab2 b where a.col1 = b.col1 이란 조인쿼리문이나
create view test_view as
select * from tab1 a, tab2 b where a.col1 = b.col1 으로 뷰를 만들어
select * from test_view한거나 위에 쿼리문 select * from tab1 a, tab2 b where a.col1 = b.col1 나 똑같다는거죠. 옵티마이져가 쿼리를 실행시 쿼리변형을 일으켜서 select * from test_view 이 쿼리를 select * from tab1 a, tab2 b where a.col1 = b.col1이렇게 만들어주는거죠 이외에 복잡한 사항이 많은데 엔코아에서 나온 새로쓴대용량데이타베이스를 권해 드리고 싶네요 그책에 자세히 나와 있습니다.
출처 - http://www.okjsp.pe.kr/seq/102596
===================================================================================
VIEW와 JOIN은 어떤걸 사용해야 할까요?
view와 join중 어느것이 빠른지 궁금합니다.
프로그램시 join을 해서 select할 경우는 필요한 컬럼만 조건에 맞춰서 가져오면 되는데
view는 우선 join으로 가상의 테이블을 만들어서 데이터를 가져오고
그 view를 다시 select를 하거나 조건을 또 한번 줘서 필요한 부분을 뽑아서 select를 하잖아요...
그러면 view가 느린거 아닌가요?
예)
조인은 아래와 같이
SELECT a.name, a.id, b.addr
FROM A a, B b
WHERE a.seq = b.seq AND a.seq = 1;
조건까지 한번에 가져오지만
VIEW는
CREATE OR REPLACE VIEW V_AB
(seq, id, name, addr)
AS
SELECT a.seq, a.name, a.id, b.addr
FROM A a, B b
WHERE a.seq = b.seq
V_AB 가 한번 join해서 가져오고
이 거져온 view를 통해서 아래와 같이
SELECT name, id, addr
FROM V_AB
WHERE seq = 1
다시 조건을 줘서 가져오면 view가 더 느린게 아닐까 하는게 제 생각입니다.
물론 위에든 예는 간단한거라 그리 상관없겠지만
정말 많은 조인이 일어나고 많은 조건이 있거나 VIEW를 생성하는 과정에서 많은 sub query가 존재 한다면 어떻게 될까요?.
제가 생각하고 있는게 맞는건가요?
안녕하세요. 강남이입니다. 결론부터 말씀드리면 일반 조인 문장을 쓰는 쪽이 빠릅니다.
뷰를 사용하는 이유는 크게 1. 보안 2. 편의성 때문입니다.
흔히 조인 문장을 뷰로 만들어 사용하는 이유는 위의 두가지 이유 중 두번째인 편의성 때문입니다. 따라서 뷰에 조인문장을 저장한다고 해서 속도 등의 변화가 생기지는 않습니다.
다만 조인 문장을 뷰에 저장했다가 실행한다면 뷰에 있는 문장을 풀어내는 시간이 추가적으로 더 필요하겠지요?
좋은 답변이 되었기를 바랍니다. 그럼^^ 출처 - http://k.daum.net/qna/view.html?qid=4GKW6&aid=4GLp2 ======================================================================= 조인 테이블 쓰는 것과 view 테이블 쓰는것중에 어는것이 더 효율적인가요 먼저 관계형 데이터베이스시스템을 제작할 때에는 성능 문제를 가장 중요하게 생각하게 됩니다. 출처 - http://k.daum.net/qna/view.html?qid=4GKql |
'DB > Common' 카테고리의 다른 글
DBCP 소개/설정 및 validationQuery 이슈 (0) | 2012.04.30 |
---|---|
CREATE SCHEMA (0) | 2012.04.12 |
제로보드로 유료 사이트 만들기 (결제 테이블) (0) | 2012.04.09 |
데이터 모델링 순서 및 유의사항 (0) | 2012.04.05 |
개체-관계 모델링(Entity-Relationship Modelling) (0) | 2012.04.03 |