* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Linux 64bit 등 | |
CUBRID 9.3 (9.3.6.0002) | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
현재 HA 구성중이고 시스템은 RAID10 으로 구성되어있습니다.
파티셔닝을 해서 성능을 좀 향상해보려고 하는데요.
특정 테이블에 날짜별로 데이터를 구분하려는데
제가 range, hash 방식으로 다 테스트를 해보았는데.
I/O가 줄어들기는 하지만 실제로 쿼리가 종료되는 시간은 동일하더라고요.
날짜조건을 주었음에도 성능향상이 안되던데...다른 DBMS와 같은 성능향상을 보려면 어떻게 해야될까요??
아래의 예제를 보시면 성능차이가 없지 않습니다.
cub_tb_lcm_sbject_lctre_actpln 이라는 테이블이 있으며 해당 테이블에는 3641955건의 로우가 있으며
-- 파티션할 테이블 생성 및 데이터 입력
CREATE TABLE cub_tb_lcm_sbject_lctre_actpln_pt LIKE cub_tb_lcm_sbject_lctre_actpln;
INSERT INTOcub_tb_lcm_sbject_lctre_actpln_pt SELECT * FROM cub_tb_lcm_sbject_lctre_actpln;
-- 파티션 생성
ALTER TABLE cub_tb_lcm_sbject_lctre_actpln_pt
PARTITION BY RANGE (updde) (
PARTITION [2010] VALUES LESS THAN ('2010-01-01'),
PARTITION [2015] VALUES LESS THAN ('2015-01-01'),
PARTITION [max] VALUES LESS THAN MAXVALUE
);
SELECT *
FROM cub_tb_lcm_sbject_lctre_actpln
WHERE
updde BETWEEN DATE'2009-08-31' AND DATE'2009-09-01'
AND sbject_id = 'B020004045';
의 쿼리를 실행 하고 플랜과 트레이스 비교 정보 입니다.
위와 같이 쿼리 결과는 빠르고, 데이터를 읽기위해 스캔한 로우수도 적습니다.
테이블 스키마정보와 사용하신 쿼리를 먼재 확인 해보시고, 도움이 필요하시다면 구체적인 정보를 주시면 자세한 답변이 가능합니다.