Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

/* 병렬 처리를 이용하면 여러 subtasks를 동시에 나누어 실행할 수 있으며, 메모리의 버퍼 캐시 영역을 참조하지 않기 때문에 대용량 처리에 매우 용이할 수 있다. 단, 트랜잭션이 빈번하게 발생하는 환경에서는 병렬처리를 사용해선 안 된다. */

/* PARALLEL_INDEX 힌트는 알맞는 파티션 테이블 인덱스가 존재할 때 사용하는 것이 좋다. 일반적으로 병렬 처리는 대용량 데이터 처리에 특화되어 있는 기능이기 때문이다. 더 자세한 내용은 이 책의 마지막 단원을 참고하라. */

http://www.yes24.com/Product/Goods/80997582

 

오라클 성능 고도화 원리와 해법 2 - YES24

`고성능 데이터베이스 애플리케이션 구축을 위해 필수적으로 이해하고 적용해야 할 원리와 해법`데이터베이스 튜닝과 관련된 핵심 주제를 중심으로, 실전에서 자주 접하는 주요 성능 이슈에 대

www.yes24.com

 

 

 

 

난이도: 

문제 1:  세션에 trace를 활성화시키고, 테이블을 병렬도 4로 읽어라. (5분)

 

CREATE TABLE ryu_table_01
AS
SELECT	*
FROM	dba_objects
WHERE	rownum <= 10000;


SET AUTOTRACE TRACEONLY EXP;
SELECT	/*+ parallel(ryu_table_01, 8) */ *
FROM	ryu_table_01;

 

 

 

 

 

난이도: 

문제 2:  ryu 유저에 default 병렬도가 6인 테이블을 생성하여라. 그리고 테이블을 쿼리하여 실행계획을 확인하여라. (6분)

 

CONN ryu/asdf0930k;

CREATE TABLE ryu_table_02
PARALLEL (DEGREE 6)
AS
SELECT	*
FROM	dba_objects
WHERE	rownum <= 1000;


EXPLAIN PLAN FOR
SELECT	*
FROM	ryu_table_02;

SELECT	*
FROM	table(dbms_xplan.display(null,null,'typical'));

 

 

 

 

 

난이도: 

문제 3: DBA_OBJECTS 뷰 베이스인 빈 테이블을 작성하여라. 그리고 DBA_OBJECTS 뷰를 병렬도 4로 읽고, 병렬도 6으로 데이터를 빈 테이블에 insert하여라.  

 

/* INSERT ... SELECT ... 구문의 경우, 모두 같은 병렬도를 지정하는 것이 유리하다. 테이블 읽기 프로세스와 데이터 추가 프로세스의 병렬도를 굳이 서로 다르게 지정한다면, 테이블을 읽은 후 데이터 추가를 위해 데이터 분할 프로세스를 새로 진행하여야 되기 때문이다. */

 

CREATE TABLE ryu_table_03
AS
SELECT	*
FROM	dba_objects
WHERE	1=2;

INSERT	/*+ parallel(ryu_table_03, 6) */ INTO ryu_table_03
SELECT	/*+ parallel(dba_objects, 4) */ *
FROM	dba_objects;

 

 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo