* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Linux 64bit CentOS 6.4 | |
CUBRID 9.3(9.3.3.0014) | |
[도움말]-[버전정보] 확인 | |
JAVA(JSP) |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
CPU는 핵사코어(6) * 하이퍼 쓰레딩(2) = > 12 개의 프로세스가 있습니다.
웹페이지를 통해 데이터가 좀 많은 TABLE에 SELECT 질의를 했을때
리눅스에서 TOP 명령을 보면 전체 CPU 사용율은 15%도 안되는데 큐브리드는 90~130% 가 넘게 CPU를 사용하고 있습니다.
- CPU 프로세서 12개중 1개만 사용하는 것으로만 보임..
이 시점에서 해당 페이지는 거의 응답이 없음과 같은 현상을 보이며 멍때리고 있습니다.
문제는 다른 웹 서버에서 또는 메니저 툴을 이용해 전혀 다른 테이블에 SELECT 를 해도 응답이 없습니다.
처음에 요청한 SQL를 처리 하기 전까지 해당 DB를 사용하는 모든 웹 + 매니저 등 모두 느리거나 동작을 하지 않습니다.
컨넥션을 따로 연결 한건데 말이죠..
큐브리드를 잘 못 설치 한건가요..? 환경설정이 DEFAULT 말고 따로 튜닝을 해야 하나요?
큐브리드가 CPU의 멀티코어(프로세서)를 제대로 사용 못하는 것처럼 보이는건 저만 그런건가요..
참고 : 한달 업무용 데이터가 5~10만 INSERT
테이블 크기나 수행한 질의가 정확치 않아 일반적으로 개선 가능한 부분을 기술합니다.
1. 영구 temp 볼륨이 있는지 확인해주세요.
결과 또는 in-line view를 사용할 경우 temp 볼륨에 중간 데이타를 저장하게 되는데,
영구 temp 볼륨이 없을 경우에는 질의 수행 도중 임시 temp 볼륨을 만들게 됩니다.
볼륨 확인 방법은 cubrid spacedb 명령어를 참고하시고, 영구 볼륨을 만드는 방법은 cubrid addvoldb 명령어를 참고하세요.
2. 질의는 filtering (where 조건)을 수행하시고, where 조건은 인덱스 scan 할 수 있도록 index를 생성해주세요.