PIECESIZE 란?
. Nonpartitioning 인덱스를 여러개의 데이터셋으로 분리하여 사용하고자 할 때 활용
. I/O분산효과, 한 볼륨보다 큰 Large D/S의 관리용이
. DEFAULT : 2 GB(LARGE TABLE인 경우:4GB)
. CREATE 혹은 ALTER INDEX 문장에서 정의
. alter 문장의 사용예
ALTER INDEX DACX02.DACX02AW PIECESIZE 2G; COMMIT ;
. 단위
K : 256 K - 4,194,304 K
M : 1 M - 4096 M
G : 1 G - 4 G
PIECE SIZE 일람표!
256K - 65536K 64 M
512K - 131072K 128 M
1024K 1M 262144K 256 M
2048K 2M 524288K 512 M
4096K 4M 1048576K 1024 M OR 1 G
8192K 8M 2097152K 2048 M OR 2 G
16384 16M 4194304K / 4096 M OR 4 G
32768 32M (LARGE table space)
. alter문장을 수행하고 나면 해당 index는 page set recovery pending(PSRCP) 상태가 된다
SQLCODE : 620
RECOVERY INDEX 나 REORG TABLESPACE 작업을 해줌
. 데이터셋 확장 후, delete 등의 작업으로 기존 데이터량이 감소된 상태에서 reorg작업을 하면 확장된 데이터셋의 갯수가 현재의 데이터량 기준으로 줄어든다(데이터셋갯수자동감소).
. 분산한 D/S를 하나로 통합하고자 할 때는 PIECESIZE를 최고큰값으로(2G OR 4G) ALTER 한다.
. SECQTY 0 으로 주고 PRIQTY보다 작게 PIECESIZE 주면 PRIQTY 단위(?)로 D/S이 만들어진다
o 실제사용량은 PIECESIZE 만큼만(?) 사용된 후 다음D/S이 만들어진다.
. SECQTY 값을 주고 PRIQTY보다 크게 PIECESIZE 주면 PIECESIZE에 도달할 때까지 PHYSICAL EXTENSION 이 발생한 후 그 다음에 두 번째 D/S이 만들어 진다.
. SECQTY 0 으로 주고 PRIQTY보다 크게 PIECESIZE 주면 PRIQTY 초과시 자동확장안됨(ERROR)
o SQLCODE : 00D70027
. SECQTY와 관계없이 PRIQTY와 PIECESIZE를 동일하게 주면 PRIQTY 초과시 SECQTY 확장없이 바로 다음 D/S이 만들어 짐
< 의문점 => 고수님들의 도움을 바랍니다! Please....>
☞ PRIQTY 및 SECQTY와 PIECESIZE의 보다 정확한 관계는?
☞ 한 볼륨내에서 PIECESIZE문에 의해 여러개의 D/S이 만들어 졌을 때 I/O상의 문제는 없을까?
VSAM EXTENTION 보다는 유리하다?
☞ 그렇다면 PRIQTY 및 SECQTY, PIECESIZE를 잘 조합(?)하여 VSAM EXTENTION를 방지하면서
보다 효율적으로 활용할 수 없을까?....
☞ 데이터셋별로 볼륨을 효과적으로 분산하는 방법은?
< 참고 >
본 자료는 DB2 for OS/390 Version 5 환경하에서 테스트한 자료입니다.
|