* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Linux 64b |
|
cubrid 10.2.2.8874 |
|
CUBRID Manager 11.0.0.0001 (64bit) |
|
java 1.8 + TOMCAT8.5 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
jdbc - UPDATE 속도가 느립니다. 웹페이지 전체 slql
테이블 : BBS_PRESS_MSG_TB
pk : BBS_CD, MSG_SEQ
-- 단순 조회수 증가 SQL
UPDATE BBS_PRESS_MSG_TB
SET VIEW_CNT = VIEW_CNT + 1
WHERE BBS_CD='gallery' AND MSG_SEQ=61
-- 증상
1~3 초 정도 시간이 걸림
느리다고 올려주신 질의의 execute time를 확인해봐주세요. (로그의 execute time이 느리지 않는 경우에는 다른 부분의 확인이 필요합니다.)
만약, 로그 확인시 동일하게 수행시간이 느려진 경우에는 해당 table의 index들 중 중복도가 높은 index(single column index) index가 있는지 확인하셔서 중복도 낮추어 주시기 바랍니다.
중복도가 높은 경우 key를 찾는데 수행 시간이 소요될 수 있습니다.
인덱스과 인덱스의 중복도를 확인하는 방법은 다음과 같습니다.
csql> SHOW ALL INDEXES CAPACITY OF table-name
위 질의 결과에서 Num_distinct_key, Total_value 컬럼 값을 확인하세요. total_value은 전체 record수이고, num_distinct_key는 중복되지 않은 record 수입니다. num_distinct_key값이 작으면 작을 수록 중복도가 높습니다.
중복도가 높은 index는 구성된 column 뒷 부분에 unique한 column(pk column)을 추가하여 중복도를 낮출 수 있습니다.