안녕하세요.
현재 MS-SQL을 사용하고 있는데요.
올해 하반기 계획으로 큐브리드 도입을 검토 중에 있습니다.
검토 중 큐브리드에도 분할(PARTITION) 기능이 있는 것을 확인했습니다.
문의할 내용은
1. 분할 기능 사용 시 디스크 I/O를 분산한다고 되있는데.. 분할된 각 partition에 대해서 물리적으로 DB파일의 볼륨 분리 여부
2. 해시 분할을 사용한 테이블을 생성하고, 조회시 분할 프루닝을 사용하려고 할때
여러값에 대한 동등 비교시에도 분할 프루닝이 발생하는지 여부
ex)
CREATE TABLE manager (
yearmonth INT,
name VARCHAR(50))
PARTITION BY HASH ( yearmonth) PARTITIONS 160;
SELECT * FROM manager WHERE yearmonth= 201206 or yearmonth=201207;
or
SELECT * FROM manager WHERE yearmonth in (201206 , 201207);
답변해주시면 감사하겠습니다.
수고하세요.
안녕하세요. 질문 감사 드립니다.
1. CUBRID에서는 데이터, 인덱스 등의 볼륨을 사용자가 추가적으로 생성할 수 있습니다. 볼륨이 하나일 경우에는 무의미하지만 여러개의 데이터볼륨이 이미 생성되어 있고, 사용가능한 공간이 있다면 파티셔닝된 테이블에 데이터를 insert 할 경우, CUBRID 엔진이 데이터를 각 볼륨에 적절하게 분배하게 됩니다. 다만 사용자는 어떤 볼륨에 어떤 데이터가 들어가있는지 알 수 없습니다.
2. 조건 절에 in 또는 or 문을 사용하여도 분할 프루닝이 적용됩니다.