outline을 사용하기 위해서는 다음의 명령어를 사용합니다. | |
| |
생성 시와 마찬가지로 category 이름을 지정하거나 true를 지정하여 SO를 사용할 수 있습니다. | |
다시 정리하자면 질의문에 대해 outline을 이용한 실행 계획을 결정하기 위해서는 다음과 같은 | |
| |
일단 참조할 outline이 결정되면, 참조하는 category에 지정된 실행 계획에 의거하여 질의문을 수행합니다. 물론, 이때 사용되는 outline의 hints는 outline 생성 시 user_outlines에 저장이 되면서 생성된 user_outline_hints에 기록된 방식을 사용합니다. |
-------------------------------------------------------------------------------------------------------------------
출처 : http://blog.naver.com/do4girlz?Redirect=Log&logNo=20003299209
-------------------------------------------------------------------------------------------------------------------
[개요]
옵티마이저에 영향을 줄 수 있는 Factor에 상관없이 사용자가 지정한 실행 계획으로
옵티마이저가 수행하도록 하는 방법을 알아본다.
[예제]
SQL> CREATE OUTLINE employee FOR CATEGORY spec
ON SELECT * FROM emp WHERE empno=7788;
SQL> set autotrace on
SQL> SELECT * FROM emp WHERE empno=7788;
Execution Plan
-------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL | EMP |
SQL> CREATE INDEX empno_idx ON emp(empno);
SQL> SELECT * FROM emp WHERE empno=7788;
Execution Plan
-----------------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS BY INDEX ROWID| EMP
INDEX RANGE SCAN | EMPNO_IDX |
SQL> ALTER SESSION SET use_stored_outlines=spec;
SQL> SELECT * FROM emp WHERE empno=7788;
Execution Plan
-------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL | EMP |
Note
--------
- outline "EMPLOYEE" used for this statement
----------------------------------------------------------------------------------------------
출처 : http://cafe.naver.com/techora.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=10
댓글 없음:
댓글 쓰기