[Hint]병렬처리(PARALLEL)
Parallel 힌트에서 지정한 병렬도로 쿼리를 처리할 수 있게 해줍니다.
query에 포함된 table의 degree를 설정할 수 있는데 테이블이나 인덱스 생성시 degree는 기본이 1이며 다음과 같이 확인 가능 합니다. 참고로 degree는 병렬도를 이야기 하는데 해당 SQL을 몇 개의 작업으로 분할하여 동시에 처리할 것인가를 나타내는 값입니다. 하나의 일을 동시에 여러 프로세스가 나누어서 처리하므로 빨리 할 수 있겠지만 무작정 성능이 좋은 것은 아닙니다.
SQL>SELECT DEGREE FROM USER_TABLES
2 WHERE TABLE_NAME = ‘EMP’
DEGREE
------
1
만약 다음과 같이 테이블을 만든다면 degree 는 2가 되겠죠…
Create table emp (
Empno number(7) not null primary key,
Ename varchar2(20),
…
)
Parallel(degree 2);
SQL>SELECT DEGREE FROM USER_TABLES
2 WHERE TABLE_NAME = ‘EMP’
DEGREE
------
2
이미 생성된 테이블에 대해서는 다음과 같이 병렬도를 변경 가능 합니다.
alter table emp parallel (degree 4);
alter table emp parallel (degree default);
다음과 같이 뷰에서도 사용 가능 합니다.
create or replace view v_emp as
select /*+ parallel (emp, 4) parallel (dept, 6) */
from emp, dept
where emp.id = dept.x_id;
parellel 힌트를 사용하면 기본적으로 설정된 병렬도를 무시하고 해당 SQL문에 대해 지정가능 하다는 이야기입니다.
SQL>select /*+ parallel(emp 2) from emp;
일반적인 실행계획 구문이외 다음과 같은 힌트가 보이면 해당 쿼리가 병렬 처리되고 있다고 생각하시면 되구요…
/*+ Q1207000 NO_EXPAND ROWID(A1) */
다음과 같이 병렬도를 명시적으로 지정하지 않으면 “CPU개수 * PARELLEL_THREADS_PER_CPU값”을 기본적으로 취합니다.
Select /*+ parallel(emp) */ from emp;
Parallel 힌트에서 지정한 병렬도로 쿼리를 처리할 수 있게 해줍니다.
query에 포함된 table의 degree를 설정할 수 있는데 테이블이나 인덱스 생성시 degree는 기본이 1이며 다음과 같이 확인 가능 합니다. 참고로 degree는 병렬도를 이야기 하는데 해당 SQL을 몇 개의 작업으로 분할하여 동시에 처리할 것인가를 나타내는 값입니다. 하나의 일을 동시에 여러 프로세스가 나누어서 처리하므로 빨리 할 수 있겠지만 무작정 성능이 좋은 것은 아닙니다.
SQL>SELECT DEGREE FROM USER_TABLES
2 WHERE TABLE_NAME = ‘EMP’
DEGREE
------
1
만약 다음과 같이 테이블을 만든다면 degree 는 2가 되겠죠…
Create table emp (
Empno number(7) not null primary key,
Ename varchar2(20),
…
)
Parallel(degree 2);
SQL>SELECT DEGREE FROM USER_TABLES
2 WHERE TABLE_NAME = ‘EMP’
DEGREE
------
2
이미 생성된 테이블에 대해서는 다음과 같이 병렬도를 변경 가능 합니다.
alter table emp parallel (degree 4);
alter table emp parallel (degree default);
다음과 같이 뷰에서도 사용 가능 합니다.
create or replace view v_emp as
select /*+ parallel (emp, 4) parallel (dept, 6) */
from emp, dept
where emp.id = dept.x_id;
parellel 힌트를 사용하면 기본적으로 설정된 병렬도를 무시하고 해당 SQL문에 대해 지정가능 하다는 이야기입니다.
SQL>select /*+ parallel(emp 2) from emp;
일반적인 실행계획 구문이외 다음과 같은 힌트가 보이면 해당 쿼리가 병렬 처리되고 있다고 생각하시면 되구요…
/*+ Q1207000 NO_EXPAND ROWID(A1) */
다음과 같이 병렬도를 명시적으로 지정하지 않으면 “CPU개수 * PARELLEL_THREADS_PER_CPU값”을 기본적으로 취합니다.
Select /*+ parallel(emp) */ from emp;
기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2122 | ||
[채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1532 | ||
53 | [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… | 03-15 | 1305 | |
52 | [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 | 01-31 | 1444 | |
51 | [평일,기업100%환급]SQL기초에서 Schema Object까지 | 01-31 | 1448 | |
50 | [기업100%환급]Spring ,MyBatis,Hibernate실무과정(스프링개발자… | 01-31 | 1128 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 | 01-19 | 1446 | |
48 | [평일주간,평일야간,주말]안드로이드개발자과정 | 01-11 | 1275 | |
47 | [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… | 01-03 | 1775 | |
46 | 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2122 | |
45 | [기업100%환급,평일주간]자바기초에서 JDBC, Servlet/JSP까지 | 12-19 | 1536 | |
44 | [평일야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,Jav… | 12-14 | 1513 | |
43 | [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1532 | |
42 | [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 | 12-09 | 1217 | |
41 | [평일야간, 주말]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1448 | |
40 | [기업100%환급]안드로이드개발자과정(Android전액환급교육) | 12-01 | 1587 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1100 |
댓글 없음:
댓글 쓰기