3 부작의 마지막 편
첫 번째,
Oracle Data Access Pattern을 정복하라
두 번째, Data Access Pattern중의 파티션에 관련된
Partition Access Pattern 에 이어서 마지막 편이다.

지난 글에서 Data Access Pattern 과 Join Method 이 두 가지는 기본 중에 기본이라고 하였다.
또한 이 두 가지를 정복한다면 SQL 튜닝중의 많은 부분을 커버할 수 있다고 하였다.
튜닝에서 이것보다 중요한 것이 있을까? 이것들 중에 하나라도 빠트린다면 제대로 된 튜닝을 할 수 없다.

단순 분류 5가지
데이터의 연결방법은 단순분류해 보면 다음과 같다.

1.Nested Loop Join
2.Sort Merge Join
3.Hash Join
4.Outer Join
5.Using Subquery

세분화
하지만 이것으로는 부족하다. Join Method를 좀더 자세히 나타내면 다음과 같다.

01. Nested Loop Join
02. Sort Merge Join
03. Hash Join
04. Cartesian Join (혹은 Cross Join)
05. Sub Query-In,
06. Sub Query-Any
07. Sub Query-All
08. Sub Query-Exists
09. Subquery Factoring
10. Semi Join-Nested Loop
11. Semi Join-Sort Merge
12. Semi Join-Hash
13. Semi Join-Hash Join Right
14. Anti Join-Nested Loop
15. Anti Join-Sort Merge
16. Anti Join-Hash
17. Anti Join-Hash Join Right
18. Index Join
19. Outer Join-Full
20. Outer Join-Nested Loop
21. Outer Join-Sort Merge
22. Outer Join-Hash
23. Outer Join-Hash Join Right
24. Partition Outer Join
25. Star Query Transformation
 
극한의 세분화
물론 여기서 더 세분화 시킬 수 있다. 예를 들면 Nested Loop Join은 아래와 같이 분류할 수 있다.

Full(선행집합)-Unique (후행집합)
Full(선행집합)-Range (후행집합)
Range(선행집합)-Range (후행집합)
Unique(선행집합)-Unique (후행집합)
....중간생략

이런 방법으로 Sort Merge Join과 Hash Join까지 계속 나열한다면 아마 끝이 없을 것이다.

단 한 줄도 놓치지 마라 
아래의 첨부파일에는 Nested Loop Join도 위와 같은 방법으로 가능한 세분화 하였다. 따라서 이 파일에 담긴 Join method는 25가지가 넘는다. 오늘 이야기하는 조인방법들은 튜닝을 하려면 반드시 정복해야 할 주제이니 꼼꼼히 보기 바란다.


Oracle Data Join Method.pdf

Oracle Data Join Method



PS
Star Join은 Star Query Transformation이 나온 후로 설 땅을 잃었으므로 나타내지 않았다.

Posted by extremedb

댓글을 달아 주세요

  1. Kai 2010.02.26 17:45  댓글주소  수정/삭제  댓글쓰기

    열심히 공부하겠습니다. ( '')/☆

  2. starroot 2010.02.26 17:52  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다.

  3. feelie 2010.03.02 13:08  댓글주소  수정/삭제  댓글쓰기

    oracle data access pattern, partition access pattern,
    그리고 oracle join 25가지 까지....
    좋은정보에 감사할 따름입니다..

  4. 이쁜이 2010.03.02 22:04  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다.

  5. daemon 2010.03.05 15:06  댓글주소  수정/삭제  댓글쓰기

    오동규 컨설턴트님의 글을 항상 감사하게 보고 있습니다.
    이렇게 귀중한 정보를 아무 댓가도 없이 공유해주시는 모습 정말 존경스럽습니다.
    컨설턴트님의 책을 손꼽아 기다리는 한사람으로서 항상 올려주시는 자료에 감사의 말씀이라도
    꼭 드리고 싶었습니다.

  6. Ejql 2010.07.26 10:15  댓글주소  수정/삭제  댓글쓰기

    이제.. 오동규님의 책을 읽을 준비가 되었다고 판단해서. 먼저 기초 공부로 티스토리부터 시작하겠습니다.
    감사합니다.

  7. Favicon of http://bluegom.tistory.com BlogIcon 파란곰팅 2010.12.10 19:47  댓글주소  수정/삭제  댓글쓰기

    오옷... 이런 좋은 자료가 감사합니다.^^....

  8. 힘돌이 2011.10.12 11:46  댓글주소  수정/삭제  댓글쓰기

    오동규님 정말 감사합니다.
    여기서 정말 많은것을 배우게 되네요.