2014년 9월 30일 화요일

[Hint]ACCESS 경로를 변경하는 힌트(NO_EXPAND)[오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]

[Hint]ACCESS 경로를 변경하는 힌트(NO_EXPAND) 

NO_EXPAND 힌트는 COST BASED Optimizer 모드에서 OR 조건이나 IN List등을 사용할 때 OR확장(Concatenation등을 사용하여..)을 막는 것인데 실행 계획에 Concatenation이 나타날 수 있는데 이를 사용하지 않도록 않도록 처리해 줍니다. 

즉 OR를 UNION-ALL로 풀지 말고 

아래의 예를 보죠~ 

[형식] 
/*+ NO_EXPAND */ 

실습을 위해 먼저 옵티마이저 모드를 RULE로 바꾼 후 … 

왜 바꾸냐 하면?  EMP 테이블의 경우 데이터 양이 적으므로 OR를 사용하더라도 FULL SCAN하는 실행계획을 만들어 내므로 고의로 CONCATENATION을 만들어 내기 위해 RULE BASED Optimizer Mode로 변경하는 것입니다. 물론 옵티마이저 모드를 CHOOSE로 한 후 테이블의 통계 정보를 삭제하는 경우에도 동일 합니다. 

alter session set optimizer_mode=rule; 

SELECT ename, sal 
FROM  EMP 
WHERE  JOB  = 'CLERK' 
OR    JOB  = 'SALESMAN' 

----------------------------------------------------------------- 
Operation        Object Name        Rows        Bytes        Cost        
----------------------------------------------------------------- 
SELECT STATEMENT Optimizer Mode=RULE                                            
  CONCATENATION                                                                    
    TABLE ACCESS BY INDEX ROWID        SCOTT.EMP                                    
      INDEX RANGE SCAN        SCOTT.IDX_EMP_JOB                                    
    TABLE ACCESS BY INDEX ROWID        SCOTT.EMP                                    
      INDEX RANGE SCAN        SCOTT.IDX_EMP_JOB                                    



SELECT /*+ NO_EXPAND */ 
      ENAME, SAL 
FROM  EMP 
WHERE  JOB  = 'CLERK' 
OR    JOB  = 'SALESMAN' 

Operation        Object Name        Rows        Bytes        Cost        
SELECT STATEMENT Optimizer Mode=RULE                6                  2          
  INLIST ITERATOR                                                                    
    TABLE ACCESS BY INDEX ROWID        SCOTT.EMP        6          96          2          
      INDEX RANGE SCAN        SCOTT.IDX_EMP_JOB        6                  1          



 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272033
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111482
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-151244
52 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 오라클자바…01-311399
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-311260
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-311086
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191402
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111231
47 [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… 오라클자바…01-031731
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272033
45 [기업100%환급,평일주간]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-191496
44 [평일야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,Jav… 오라클자바…12-141477
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111482
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-091185
41 [평일야간, 주말]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011402
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011547
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011055

댓글 없음:

댓글 쓰기