2019년 1월 2일 수요일

(오라클학원/SQL학원)SQL튜닝, 오라클힌트(ORACLE Hints) 실무교육

[데이터 사이언스, DB, 파이썬]




SQL튜닝, 오라클힌트(ORACLE Hints) 실무교육 





           ÃªÂ°Âë°ÂìÂÂ,DBì Â문ê°Â를 ìÂÂí PL/SQL, ì¤ë¼í´íÂÂí¸ & SQLíÂÂë             











★ 교육개요 ★


SQL힌트/튜닝
오라클에서 SQL구문의 실행순서, 오라클 옵티마이저에 대한 이해, 고급SQL, 효과적인 Index사용, 적절한 드라이빙테이블의 선정, 데이터 액세스 경로의 변경, 조인방법의 변경, 쿼리변환의 이해, 조인방법의 이해, Application Upgrade를 위해 Oracle Hint를 적절히 사용하고 관리한다면 수분이상 걸리는 SQL문장을 수 초안에 데이터가 추출되도록 SQL튜닝 가능하죠^^, 개발자, SQL개발자, DB전문가를 위해서 반드시 알고 있어야 합니다!

본 과정을 통해 서브쿼리 및 조인의 튜닝, 그룹함수의 튜닝, 각종 인덱스에 대한 이해, 인덱스 활용법, 조인의 원리, 세미조인, 안티조인, 머지조인의 이해 및 관련된 여러가지 힌트구문과 더블어 SQL튜닝에 대한 이해를 실습을 통해 자세히 이해하게 되실 것 입니다.

철저한 실습, 실무위주의 교육으로 본 과정을 수료함으로써 고급 SQL 사용에 대한 자신감 및 SKILL을 향상시킬 수 있을 것 입니다. 



★ 수료조건 ★ 


출석률 80%이상 


★ 교육목표 ★  


DBMS_STATS 패키지에 대한 이해
오라클 옵티마이저에 대한 이해
SQL실행계획, 통계정보 및 튜닝의 도구들에 대한 이해
CBO, RBO에 대한 이해
Optimizer Mode를 변경하는 힌트
실행계획 연산자의 이해
Online Application Upgrade 힌트의 이해
Oracle Index 구조, 작동방식에 대한 이해
인덱스와 관련된 오라클 힌트에 대한 이해
Access Paths와 관련된 힌트의 이해
조인방법 및 원리에 대한 이해
조인순서, 드라이빙 테이블의 선정과 관련된 힌트의 이해
서브쿼리의 종류에 대한 이해
오라클 옵티마이저의 쿼리변환 및 관련힌트구문에 대한 이해
기타 힌트구문에 대한 이해 



★ 교육대상 ★


SQL 개발자
DBA
쿼리에 관심 있는 개발자 


★ 커리큘럼 ★ 

  • 오라클힌트 & SQL튜닝1.1 SQL문 처리과정
    1.2 커서(Cursor) & Oracle Memory
    1.3 DBMS_STATS 패키지 사용하기
    1.4 EMPTY_BLOCK, BLOCKS, HIGH WATER MARK(HWM)
    1.5 Optimizer Statistics(Table/Column 통계정보)
    1.6 Literal SQL & Bind Variable SQL(Soft Parsing/Hard Parsing)
    1.7 CURSOR_SHARING 파라미터
    1.8 튜닝의 도구 - SQL AUTOTRACE
    1.9 튜닝의 도구 – DBMS_XPLAN
    1.10 튜닝의 도구 – 10053 Event
    1.11 실행계획 해석
    1.12 실행계획 해석(predicate)
    1.13 초기화 파라미터 OPTIMIZER_MODE
    1.14 Optimizer Mode Setting 방법
    1.15 규칙 기반 옵티마이저(Rule-Based Optimizer)
    1.16 비용기반 옵티마이저(Cost-Based Optimizer)
    2.1 Optimizer Mode를 변경하는 힌트 (RULE)
    2.2 Optimizer Mode를 변경하는 힌트(FIRST_ROWS)
    2.3 Optimizer Mode를 변경하는 힌트(ALL_ROWS)
    2.4 Optimizer Mode를 변경하는 힌트(CHOOSE)
    3.1 실행계획 SQL 연산(AND-EQUAL)
    3.2 실행 계획 SQL 연산(CONCATENATION)
    3.3 실행계획 SQL 연산(COUNT)
    3.4 실행계획 SQL 연산(COUNT STOPKEY)
    3.5 실행계획 SQL 연산(FILTER)
    3.6 실행계획 SQL 연산(HASH ANTI-JOIN)
    3.7 실행계획 SQL 연산(HASH SEMI-JOIN)
    3.8 실행계획 SQL 연산(NESTED LOOP SEMI-JOIN)
    3.9 실행계획 SQL 연산(INDEX RANGE SCAN)
    3.10 실행계획 SQL연산(INDEX RANGE SCAN DESCENDING)
    3.11 실행계획 SQL연산(INLIST ITERATOR)
    3.12 실행계획 SQL연산(MERGE JOIN)
    3.13 실행계획 SQL연산(MERGE SEMI JOIN)
    3.14 실행계획 SQL연산(MERGE ANTI-JOIN)
    4.1 Hints For Online Application Upgrade (CHANGE_DUPKEY_ERROR_INDEX)
    4.2 Hints For Online Application Upgrade (IGNORE_ROW_ON_DUPKEY_INDEX)
    4.3 Hints For Online Application Upgrade (RETRY_ON_ROW_CHANGE)
    14 오라클 인덱스(Oracle Index)
    5.1 비트리 인덱스(B*Tree Index)
    5.2 비트맵 인덱스(Bitmap Index)
    5.3 비트맵 조인 인덱스(Bitmap Join Index)
    5.4 역전환키 인덱스(Reverse Key Index)
    6. Hints For Access Paths(Data Scanning)
    6.1 Hints For Access Paths(FULL)
    6.2 Hints For Access Paths(CLUSTER)
    6.3 Hints For Access Paths(HASH)
    6.4 Hints For Access Paths(INDEX, INDEX_COMBINE)
    6.5 Hints For Access Paths(INDEX_ASC)
    6.6 Hints For Access Paths(INDEX_DESC)
    6.7 Hints For Access Paths(NO_INDEX)
    6.8 INDEX 힌트와 복합인덱스
    6.9 use_invisible_indexes, no_use_invisible_indexes 힌트
    6.10 Hints For Access Paths(NO_EXPAND)
    6.11 Materialized View(구체화뷰)
    6.12 Hints For Access Paths(REWRITE)
    6.13 Hints For Access Paths(INDEX_FFS)
    6.14 Hints For Access Paths(INDEX_SS)
    6.15 Hints For Access Paths(INDEX_JOIN)
    6.16 Hints For Access Paths(NATIVE_FULL_OUTER_JOIN)
    7. Hints for Join Orders
    7.1 중첩루프조인(Nested Loop Join)
    7.2 Hints for Join Orders(ORDERED)
    7.3 Hints for Join Orders(USE_NL)
    7.4 Hints for Join Orders(USE_NL_WITH_INDEX)
    7.5 Hints for Join Orders(NO_USE_NL)
    7.6 해시조인(HASH JOIN, USE_HASH, NO_USE_HASH)
    7.7 Hints for Join Orders(HASH_AJ)
    7.8 Hints for Join Orders(HASH_SJ, NL_SJ)
    7.9 Hints for Join Orders(USE_MERGE)
    7.10 Hints for Join Orders(LEADING)
    7.11 RBO에서의 드라이빙 테이블 선정
    7.12 CBO에서의 드라이빙 테이블 선정
    7.13 Semi Join(세미 조인)
    7.14 Anti Join(안티조인)
    7.15 SWAP_JOIN_INPUTS(OUTER JOIN에서 드라이빙 테이블 선정)
    8. Additional Hints
    8.1 Additional Hints(DRIVING_SITE)
    8.2 Additional Hints(CACHE, NO_CACHE)
    8.3 Additional Hints(CURSOR_SHARING_EXACT)
    8.4 Additional Hints(GATHER_PLAN_STATISTCS)
    8.5 Additional Hints(DYNAMIC_SAMPLING)
    8.6 Additional Hints(RESULT_CACHE)
    8.7 Additional Hints(QB_NAME)
    8.8 Additional Hints(MONITOR)
    9.1 Hints For Query Transformations(서브쿼리의 종류)
    9.2 Hints For Query Transformations(UNNEST, NO_UNNEST)
    9.3 Hints For Query Transformations(MERGE, NO_MERGE), View Merging
    9.4 Hints For Query Transformations(phsh_subq, no_push_subq, SubQuery Pushing)
    9.5 Query Transformations(Predicate Pushing, Predicate Pushdown)
    9.6 Query Transformations(Join Predicate Pushdown, push_pred, no_push_pred)
    9.7 Query Transformations(OR-Expansion)
    10.1 SQL문 튜닝을 위한 접근
    10.2 SQL 작성 TIP 

댓글 없음:

댓글 쓰기