2014년 5월 26일 월요일

실행계획 SQL연산(OUTER JOIN)[ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/ORACLE초보교육/오라클실무강좌] Outer Join이란 드라이빙 테이블과 조인되는 테이블에 조건을 만족하는 데이터가 없더라도 드라이빙 테이블의 데이터를 출력하는 조인의 방식입니다. (흔히 오라클인 경우 꼭 나타나야 하는 반대쪽에 더하기 표시를 합니다.) 즉 Outer Join에서 (+) 표시가 붙지 않은 테이블이 드라이빙 테이블이 되는 거죠~ SQL> SELECT E.ENAME 사원명, M.ENAME 관리자, E.SAL 급여 FROM EMP E, EMP M WHERE E.MGR = M.EMPNO(+); Execution Plan ------------------------------------------------------------------- SELECT STATEMENT Optimizer=CHOOSE NESTED LOOP(OUTER) TABLE ACCESS (FULL) OF ‘EMP’ - Alias ‘E’ TABLE ACCESS (BY INDEX ROWID) OF ‘EMP’ - Alias ‘M’ INDEX (UNIQUE SCAN) OF ‘pk_emp’ (UNIQUE) Outer Join의 경우 NESTED LOOP, MERGE JOIN, HASH JOIN과 동반하여 나타나는데 아래는 Merge Join과 Outer Join이 같이 나타나는 경우의 예입니다. SQL> SELECT /*+ USE_MERGE(E, M) */ E.ENAME 사원명, M.ENAME 관리자, E.SAL 급여 FROM EMP E, EMP M WHERE E.MGR = M.EMPNO(+); Execution Plan ------------------------------------------------------------------- SELECT STATEMENT Optimizer=CHOOSE MERGE JOIN(OUTER) SORT (JOIN) TABLE ACCESS (FULL) OF ‘EMP’ - Alias ‘E’ SORT (JOIN) TABLE ACCESS (FULL) OF ‘EMP’ - Alias ‘M’ * 이종철님에 의해서 게시물 이동되었습니다 (2006-06-04 12:28) [출처] 오라클자바커뮤니티 - http://www.oraclejavacommunity.co.kr/bbs/board.php?bo_table=LecHINT&wr_id=19 오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 www.oraclejavacommunity.com 평일주간(9:30~18:20) 개강 (5/28)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정 (5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 (5/30)[기업100%환급]SQL기초에서 Schema Object까지 (6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING (6/09)[기업100%환급]안드로이드개발자과정 (6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정 (6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 평일야간(19:00~21:50) 개강 (5/28)Spring3.X, MyBatis, Hibernate실무과정 (5/28)SQL초보에서실전전문가까지 (5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (6/03)안드로이드개발자과정 (6/03)웹퍼블리싱 마스터 (6/10)C#4.0, ADO.NET, Network 프로그래밍 (6/19)C#,ASP.NET마스터 주말(10:00~17:50) 개강 (5/31)Spring3.X, MyBatis, Hibernate실무과정 (5/31)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (5/31)SQL초보에서실전전문가까지 (5/31)C#,ASP.NET마스터 (5/31)실무예제로 배워보는 jQuery(개발자/디자이너를위한) (5/31)안드로이드개발자과정 주말저녁(18:30~22:20) 개강 (6/21)JAVA,Network&WEB&Framework (6/21)SQL기초에서실무까지

실행계획 SQL연산(OUTER JOIN)[ORACLE/SQL/HINT/오라클/교육/강의/강좌/SQL교육/오라클 PLSQL/강의/강좌/오라클교육/ORACLE초보교육/오라클실무강좌] 

Outer Join이란 드라이빙 테이블과 조인되는 테이블에 조건을 만족하는 데이터가 없더라도 드라이빙 테이블의 데이터를 출력하는 조인의 방식입니다. (흔히 오라클인 경우 꼭 나타나야 하는 반대쪽에 더하기 표시를 합니다.) 

즉 Outer Join에서 (+) 표시가 붙지 않은 테이블이 드라이빙 테이블이 되는 거죠~ 

SQL> SELECT E.ENAME 사원명, 
              M.ENAME 관리자, 
              E.SAL 급여 
      FROM EMP E, EMP M 
      WHERE E.MGR = M.EMPNO(+); 


Execution Plan 
------------------------------------------------------------------- 
SELECT STATEMENT Optimizer=CHOOSE 
NESTED LOOP(OUTER) 
  TABLE ACCESS (FULL) OF ‘EMP’                - Alias ‘E’ 
  TABLE ACCESS (BY INDEX ROWID) OF ‘EMP’    - Alias ‘M’ 
    INDEX (UNIQUE SCAN) OF ‘pk_emp’ (UNIQUE) 

Outer Join의 경우 NESTED LOOP, MERGE JOIN, HASH JOIN과 동반하여 나타나는데 아래는 Merge  Join과 Outer Join이 같이 나타나는 경우의 예입니다. 

SQL> SELECT /*+ USE_MERGE(E, M) */ 
E.ENAME 사원명, 
              M.ENAME 관리자, 
              E.SAL 급여 
      FROM EMP E, EMP M 
      WHERE E.MGR = M.EMPNO(+); 


Execution Plan 
------------------------------------------------------------------- 
SELECT STATEMENT Optimizer=CHOOSE 
MERGE JOIN(OUTER) 
  SORT (JOIN) 
    TABLE ACCESS (FULL) OF ‘EMP’                - Alias ‘E’ 
  SORT (JOIN) 
    TABLE ACCESS (FULL) OF ‘EMP’    - Alias ‘M’ 




* 이종철님에 의해서 게시물 이동되었습니다 (2006-06-04 12:28) 

댓글 없음:

댓글 쓰기