database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Tutorials 442 게시물 읽기
No. 442
병렬처리
작성자
정재익(advance)
작성일
2002-10-17 21:12
조회수
11,515

병렬처리

 

프로그램 설계 시 가장 중점을 두는 목표 중의 하나는 사용자를 위한 response time의 단축입니다. 그러나 처리 해야 할 data 량이 많아지게 되거나 내부적인 복잡한 처리를 필요로 하는 경우는 설계자나 개발자로서 취할 수 있는 방법의 한계가 있게 됩니다. 이런 경우 DB2 병렬처리 기능이 elapsed time을 단축시킬 수 있는 대안이 됩니다.

 

병렬처리 방식

 

병렬처리 방식에는 다음 3가지가 있다.

 

l I (IO 병렬처리)

 

ü SQL 문과 사용 가능한 시스템 자원에 따라 optimizer가 결정하며 하나의 task에 복수의 IO stream을 할당하는 방식이다.

 

ü 하나의 CP (central processor)로 처리된다.

 

ü 복수개의 DASD에 분산되어 있는 data가 channel을 통해 BP로 병렬로 전송된다.

 

ü IO-intensive SQL 에 효과가 있다

 

l C (CP 병렬처리) :

 

ü 여러 개의 task가 동시에 병렬로 기동되며 각 task당 하나의 IO stream이 할당된다.

 

ü 여러 개의 CP가 있는(tightly-coupled) CPC (central processor complex) 환경에서 가능하다.

 

ü 여러 개의 CP를 통해 복수개의 DASD로부터 data가 BP로 병렬로 전송된다.

 

ü CP가 여러 개 있는 환경에서 IO-intensive SQL에 효과가 있다

 

l S (Sysplex 병렬처리)

 

ü 하나의 SQL이 여러 개의 DB2 시스템을 통해 수행된다.

 

ü 둘 이상의 CPC가 sysplex data sharing으로 구현된 환경에서 가능하다.

 

ü 각 DB2 시스템에서 IO 및 CP 병렬처리가 수행된다.

 

ü 대량 sort나 Join과 같은 CP-intensive SQL에 효과적이다.

 

병렬처리의 사용

 

l DB 환경

 

ü Partitioned Tablespace와 Partitioned Index

 

ü Sort가 일어나는 경우 work file 결과

 

ü IO 병렬처리는 하나의 dataset에 있는 data에 대해서는 기동 불가함.

 

ü CP 및 Sysplex 병렬처리의 경우는 하나의 dataset에도 사용가능 : 하나의 partition, non-partitioned Table, NPI (non-part index)

 

l Static SQL의 경우

 

ü BIND…DEGREE option으로 지정

 

ü 1 혹은 ANY (1은 병렬 처리 사용 중지를 의미)

 

ü default는 System parameter : CDSSRDEF로 지정가능

 

l Dynamic SQL의 경우

 

ü SET CURRENT DEGREEL문으로 지정

 

ü CURRENT DGREE라는 special register 값을 지정하는 것으로 이 문장이 static SQL에는 영향을 주지 못함.

 

ü 1 혹은 ANY (1은 병렬 처리 사용 중지를 의미)

 

ü default는 System parameter : CDSSRDEF로 지정가능

 

l OPTIMIZER의 결정

 

ü 먼저CP 및 Sysplex 병렬처리가 가능한지 고려한다. system환경상 불가능할 경우 IO 병렬처리를 고려한다.

 

ü CP 혹은 Sysplex 병렬처리를 사용하는 경우는 복수개의 task를 통해 IO는 당연히 병렬로 처리된다.

 

V7 MAX DEGREE option

 

l CURRENT DGREE = ANY인 경우 병렬 처리가 기동되는데 그 때 실제 병렬 처리될 task 개수 (degree)는 DB2가 시스템 상황에 따라 자동으로 결정하게 된다.

 

l 이때 기동 시킬 task의 최대 개수를 사용자가 제한 하고자 할 때 max degree option으로 지정한다.

 

ü 0으로 지정하는 경우는 DB2가 알아서 결정하도록 하는 ‘no limit’ option의 의미이다.

 

l max degree option으로는 병렬처리의 기동 여부를 제어할 수 없다.

[Top]
No.
제목
작성자
작성일
조회
457[참고] iSeries(AS/400) ODBC Driver for Linux
문태준
2002-12-04
13530
448리눅스용 DB2 테스트하기
정재익
2002-10-26
22160
447Linux 에서 DB2 설치하기 [1]
정재익
2002-10-26
16955
442병렬처리
정재익
2002-10-17
11515
441DB2 개별적인 권한 종류
정재익
2002-10-17
14335
440DB2 SQL reserved words
정재익
2002-10-17
17986
439DB2 Connect를 이용한 DB2/400 데이터베이스 연결
정재익
2002-10-17
9326
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.036초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다