* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요
다음으로는 인증 메일이 발송이 되지 않네요;
큐브리드 아주 잘 사용 하고 있습니다.
감사합니다.
소문자,대문자 구분이 되어져서요, 구분없이 사용 하려 합니다.
현재 UCASE 를 사용 하게 되면 인덱스를 타지 않아
검색 쿼리가 느려지는 문제가 발생 됩니다.
조인 할 때도 UCASE 를 사용을 해서 그런가요?
1. where 검색 조건 절에서만 UCASE 를 사용 한다면 인덱스를 타는지요?
2. 검색 해보니 XE? 대소문자 구분 없이 검색이 가능 하게 끔 릴리즈 된 버젼이 있는데 ..
그보다 상위 버젼인데도 불구하고 대소문자를 구분 합니다.
해야하는 조치 사항이 어떤건지요?
3.대소문자 구분 없이 검색이 되게끔 한다면 검색 시 퍼포먼스에는 문제가 없는지요?
감사합니다.
안녕하세요.
WHERE 조건에서 특정 컬럼에 대하여 UCASE 함수를 사용하는 경우, 해당 컬럼에 일반적인 인덱스가 생성되어 있는 경우 인덱스를 타지 않습니다. 그렇기 때문에 성능적으로 이슈가 발생할 가능성이 있습니다.
만약 CUBRID 9버전대를 사용하고 계시다면, 함수 기반 인덱스가 지원되오니, 확인해 보시면 도움이 될 것 같습니다.
* 매뉴얼 : 함수 기반 인덱스
추가적으로, 말씀해 주신 'XE에서 검색 시 대소문자를 구분하지 않는 버전'의 경우 소스상에서 like 검색 대신 rlike를 사용하고 있는 것으로 확인하였습니다. rlike란 regexp 함수와 동일하며 like와의 차이점은 대소문자를 구분하지 않는 것입니다.
* 매뉴얼 : REGEXP, RLIKE
감사합니다.