행위

병렬쿼리 튜닝 세미나

DB CAFE

thumb_up 추천메뉴 바로가기


옵티마이져에 대해서?
http://dbcafe.co.kr/wiki/index.php/%EC%98%B5%ED%8B%B0%EB%A7%88%EC%9D%B4%EC%A0%B8

1 병렬 쿼리 튜닝
1.1 병렬처리 핵심은?
1.1.1 그래뉼
1.1.1.1 블록 그래뉼
1.1.1.2 파티션 그래뉼
1.1.2 파티션-와이즈 조인 Partition-wise Join
1.1.2.1 풀 파티션-와이즈 조인
1.1.2.2 부분 파티션-와이즈 조인
1.1.3 생산자 VS 소비자
1.1.4 DOP 많을수록 좋을까?
1.1.4.1 DOP 32 => DOP 16 으로 줄여서 성능개선
1.1.5 병렬퀴리튜닝의 관점은?
1.1.6 병렬 PLAN 해석하는 방법
1.1.6.1 SQL 플랜상 튜닝 검토 사항

1.2 슬기로운 병렬처리 사용법
1.2.1 병렬 힌트를 어디에 어떻게 써야 하나?
1.2.1.1 SELECT 절 병렬 힌트
1.2.1.2 INSERT 절 병렬 힌트 위치
1.2.1.3 INSERT 절 병렬 힌트 적용 안되는 경우
1.2.1.4 UPDATE/ DELETE / MERGE 힌트 위치
1.2.2 DDL 병렬 처리
1.2.2.1 CREATE 예시
1.2.2.2 ALTER 예시
1.2.3 DML 병렬 처리
1.2.3.1 DML에서 CONVENTIONAL PATH 와 DIRECT PATH 차이점
1.2.3.2 DML 병렬 처리시 주의사항
1.2.4 동일 테이블에 병렬로 입력 하는 방법

1.3 병렬 처리 진행 사항 모니터링
1.3.1 진행 사항 모니터링 관련 뷰
1.3.2 REAL MONITOR
1.3.3 병렬_쿼리_모니터링
1.3.4 토드에서 모니터링 하는 방법
1.3.5 병렬 처리 WAIT EVENT 확인 방법
1.3.5.1 병렬 처리 대기 이벤트 발생 순서
1.3.5.2 병렬 처리 대기이벤트 종류
1.3.5.3 병렬 세션 대기,대기 이벤트,대기 클래스 조회
1.3.5.4 WAIT EVENT - 상세 대기시간 확인
1.3.5.5 대기항목별 WAIT CLASS 확인

1.4 PARALLEL 힌트를 사용해도 병렬 처리가 안되는 경우
1.4.1 병렬 처리 갯수 확인
1.4.1.1 병렬처리 제약 조건
1.4.2 병렬 환경 파리미터 상세 조회
1.4.3 병렬처리가 안되는경우
1.4.3.1 서버에서 프로세스를 할당 받지 못할때
1.4.3.2 insert ~ select 의 병렬도가 다를때
1.4.3.3 파티션닝 테이블에 1개파티션만 타는경우
1.4.3.4 LOB 컬럼 포함시
1.4.3.5 DB 링크
1.4.3.6 기타 요소

1.5 병렬 힌트 활용
1.5.1 PQ_DISTRIBUTE
1.5.1.1 가능한 조합
1.5.2 PQ_REPLICATE / NO_PQ_REPLICATE(대량테이블명)
1.5.3 PQ_SKEW/NO_PQ_SKEW
1.5.4 BF 블름필터(Bloom Filter)
1.5.4.1 블름필터 제어 힌트 ( PX_JOIN_FILTER / NO_PX_JOIN_FILTER )
1.5.5 PQ_DISTRIBUTE_WINDOW
1.5.6 PQ_EXPAND_TABLE / NO_PQ_EXPAND_TABLE
1.5.7 PQ_CONCURRENT_UNION
1.5.8 PQ_FILTER
1.5.9 파티션에 사용 힌트
1.5.9.1 USE_PARTITION_WISE_DISTINCT
1.5.9.2 USE_PARTITION_WISE_GBY
1.5.9.3 USE_PARTITION_WISE_WIF

1.6 병렬 쿼리 튜닝 포인트
1.6.1 테이블 정보를 수집 하라
1.6.2 스칼라퀴리는 인라인뷰로 변경을 검토하라
1.6.3 플랜에서 QC(Query Cordinator) 위치를 확인 하라
1.6.3.1 DELETE 구문
1.6.3.2 MERGE 구문
1.6.4 BROADCAST 테이블을 찾아라
1.6.5 SQL/PLAN에서 튜닝 대상을 찾아라
1.6.6 조인이 효율적인지 검토 하라
1.6.7 심플하게 튜닝 하는 방법은 없을까?
1.6.8 병렬 처리시 주의 사항

1.7 입력/수정 성능저하시 검토 사항
1.7.1 INSERT 처리가 느릴때(SELECT~INSERT시 SELECT는 빠른데 INSERT가 느린경우)
1.7.2 시퀀스를 사용하는경우
1.7.3 DB링크 병렬처리 체크사항

1.8 데이터 전환시 사용하는 병렬처리
1.8.1 데이터 전환을 위한 최적 세션 옵션
1.8.2 대량 테이블 건수 조회시 index_ffs,parallel_index 힌트

[데이터 전환 활용]
1) 트랜젝션 데이터 건수/블럭수 조회 
http://dbcafe.co.kr/wiki/index.php/%ED%8A%B8%EB%9E%9C%EC%A0%9D%EC%85%98_%EC%A4%91%EC%9D%B8_%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%A1%B0%ED%9A%8C_V$transaction
2) 트랜젝션 처리중인 세션 명령어 조회
3) 빠른 롤백 처리 http://dbcafe.co.kr/wiki/index.php/Fast_start_parallel_rollback