홍보 / 광고

  • 개발자,DB전문가를 위한 PL/SQL, 오라클힌트 & SQL튜닝

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

 

 

 

 

개발자,DB전문가를 위한 PL/SQL,


오라클힌트 & SQL튜닝 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

평일주간 : http://topcredu.co.kr/sub/crcl/view/db/2344

주말주간 : http://topcredu.co.kr/sub/crcl/view/db/2345

 

 

 

 

★ 교육개요 ★



실무, 실습위주의 교육 입니다!

본 과정은 PL/SQL(기본작성방법, Stored Procedure, Function, Trigger, Package, Cursor, Dynamic SQL)을 마스터 후 기본적인 SQL튜닝을 위한 고급 SQL작성 및 Oracle Hint를 이용한 SQL튜닝 방법에 대해 학습합니다. 오라클 힌트를 사용하지 않고 쿼리를 최적하 하는 방법 뿐 아니라 오라클의 힌트(Oracle Hint)를 적절히 구사하여 데이터 검색 시 수분이상 걸리는 SQL 문장을 수 초안에 데이터가 검색되도록 쿼리을 튜닝하는 방법을 학습 합니다. SQL튜닝을 위한 기본 지식, 고급 SQL 사용법, 각종 인덱스에 대한 이해, 인덱스 활용법, 조인방법 및 서브쿼리 최적화 방법, SQL 실무사례, 오라클 힌트구문에 대해 배우시게 됩니다.
본 과정을 수료함으로써 개발자 및 DB전문가로써 SQL 고급활용에 대한 자신감 및 SQL튜닝을 위한 SKILL을 향상시킬 수 있을 것 입니다.



★ 수료조건 ★


출석률 80%이상


★ 교육목표 ★  


Oracle PL/SQL에 대한 이해
Oracle Stored Program(Procedure, Function)에 대한 이해
Oracle Trigger, Package에 대한 이해
Dynamic SQL에 대한 이해
인덱스를 선정하는 기준에 대한 이해
효율적인 인덱스 운영 및 관리 
B*Tree 인덱스의 단점을 보완하기 위한 기타 인덱스(Bitmap, Function Based, Reverse Key Index)에 대해서 이해.
옵티마이저의 기능과 역할을 실행계획을 통해서 정확히 이해
Oracle HINT에 대한 이해(Access Path, Join 및 기타 SQL을 위한 힌트)
조인방식에 대한 이해 및 CASE별 최적의 조인메카니즘을 이해
드라이빙 테이블선정 방법에 대한 이해
SQL문에 대하여 옵티마이저의 작동 원리를 파악하고 실행계획을 분석 
실무튜닝 사례를 설명하고 튜닝을 위한 명확한 실무 활용기준 가이드를 제시 
실행계획 SQL 연산자의 이해
서브쿼리/조인의 방법에 따른 성능을 이해하고 작성된 SQL 구문 튜닝의 이해
Access Parh/Join/Query Transformation과 관련된 오라클 힌트 구문의 이해
쿼리 최적화에 대한 이해




★ 교육대상 ★


초보 개발자
SQL에 관심있는 개발자
DB전문가가 되기 위한 DBA 또는 개발자 



★ 커리큘럼 ★ 

  • PL/SQL1. PL/SQL 개요
    1-1. PL/SQL 이란?
    1-2. PL/SQL 장점
    1-3. PL/SQL 작성방법
    1-4. PL/SQL 블록 구조
    1-5. PL/SQL과 관련된 SQL*Plus 명령어
    2. PL/SQL 프로그램
    2-1. 함수(Function)
    2-2 프로시저(Procedure)
    2-3. Stored Program과 Dictionary View
    2-4. 함수 결과 캐싱(Function Result Caching)
    3. PL/SQL 변수, 데이터 타입
    3.1 변수, 데이터타입
    3.1.1 Scalar Data Type
    3.1.2 PL/SQL Collection Types
    3.1.3 Record Type
    3.1.4 %TYPE 속성
    3.1.5 %ROWTYPE 속성
    3.1.6 Bind(Host) 변수
    3.2 PL/SQL에서 SQL문장 사용
    3.2.1 SELECT문의 사용
    3.2.2 INSERT/UPDATE/DELETE문의 사용
    4. PL/SQL 프로그래밍(제어문, 반복문)
    4.2 BASIC LOOP문
    4.3 FOR LOOP문
    4.4 WHILE LOOP문
    5. PL/SQL Cursor(커서)
    5.2 명시적 커서(Explicit Cursor)
    5.3 WHERE CURRENT OF 커서
    5.4 Parameterized 커서
    5.5 참조커서(REF CURSOR)
    5.6 DBMS_SQL 패키지를 이용한 REF CURSOR
    6. PL/SQL Exception
    6.1 Predefined Exception
    6.2 Non-Predefined Exception
    6.3 사용자 정의 오류(User Defined Exception)
    6.3.1 RAISE 구문을 이용하는 방법
    6.3.2 RAISE_APPLICATION_ERROR 구문을 이용하는 방법
    6.4 예외처리와 SQLCODE, SQLERRM 함수
    6.5 PL/SQL 패키지/함수/프러시저에서 에러발생시 실행한 소스코드, 실행프로그램이름 출력
    7. Dynamic SQL
    7.1 Dynamic SQL 이란?
    7.1.1 동적 SQL을 이용하여 DDL을 실행
    7.1.2 Dynamic SQL 사용하기(SQL문을 동적으로 생성)
    7.1.3 컴파일 타임에 존재하지 않는 데이터베이스 객체 참조
    7.1.4 PL/SQL 블록에서 다른 프러시저, 함수 호출하기
    8. 패키지(Package)
    8.1 개요 및 기본문법
    8.2 전위적 선언(Forward Declaration)
    8.3 ONE TIME ONLY PROCEDURE
    9. 트리거(Trigger)
    9.1 트리거 개요, 기본문법
    9.2 Setting Trigger Order
    9.3 Instead Of Trigger
    9.4 Trigger Mutating Table Exception, Compound Triggers
    9.5 Trigger Enable/Disable/Drop
    Oracle Hint/SQL Tuning1.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
0  COMMENTS