Background Image

FORUM

조회 수 113 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Microsoft Windows Server 버전 6.3 64bit
CUBRID Ver.
CUBRID 11.0
CUBRID TOOL Ver.
SQLGate for CUBRID Developer 버전 9.17.5.0
응용 환경(API)
java


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
테이블A에 컬럼1, 컬럼2, 컬럼3 인덱스 생성

CREATE INDEX 인덱스명 ON 테이블명 (컬럼1, 컬럼2, 컬럼3);

 

이후 테이블 A 조회 시, 

> SELECT * FROM 테이블A USE(혹은 FORCE) INDEX 인덱스명;

위처럼 조회하는 경우 인덱스가 정상적으로 타지 않고 WHERE절에 컬럼1에 대한 조건이 들어가면 인덱스가 정상적으로 타는 현상을 확인했습니다.

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

큐브리드 매뉴얼에서

 

"USING INDEX 절 또는 USE INDEX 구문을 통해 필터링된 인덱스를 명시하는 경우: 인덱스를 구성하는 칼럼이 WHERE 절의 조건에 포함되어 있지 않으면 필터링된 인덱스를 사용하지 않는다."

"USING INDEX <index_name>(+) 절 또는 FORCE INDEX 구문을 통해 필터링된 인덱스를 명시하는 경우: 인덱스를 구성하는 칼럼이 WHERE 절의 조건에 포함되어 있지 않더라도 필터링된 인덱스를 사용한다."

 

해당 부분을 확인 후 

SELECT *

FROM 테이블A FORCE INDEX 인덱스명;

SELECT *

FROM 테이블A USING INDEX 인덱스명(+);

위처럼 조회 시에도 인덱스가 정상적으로 타지 않는 케이스를 확인했습니다.

 

또한, WHERE절에 컬럼2에 대한 조건이 들어간 경우에도 인덱스를 타지않고 반드시 컬럼1(인덱스 순서 1번째 컬럼)이 WHERE절에 조건문으로 들어가야 인덱스를 정상적으로 타는 현상을 확인했습니다.

 

해당 부분 확인 부탁드립니다. 감사합니다.

 

 

  • ?
    큐브리드_김주현 2023.12.13 11:28
    큐브리드에 관심주셔서 감사합니다.

    1. "USING INDEX <index_name>(+) 절 또는 FORCE INDEX 구문을 통해 필터링된 인덱스를 명시하는 경우: 인덱스를 구성하는 칼럼이 WHERE 절의 조건에 포함되어 있지 않더라도 필터링된 인덱스를 사용한다."
    --> 해당 매뉴얼(https://www.cubrid.org/manual/ko/11.2/sql/tuning.html#id7)의 내용을 보면, 일반적으로 index(my_filter_index) 가 존재할 때, where조건절에 조건이 존재한다면 index를 사용하겠지만,
    조건절에 생성된 index가 아닌 다른 조건절만 존재하는 경우에 FORCE INDEX()를 강제할 수 있다 라는 내용입니다.
    매뉴얼 상단설명에 FORCE INDEX로 무조건 index를 태우는 것이 아니고, 해당 인덱스 선택을 우선시 한다. 라 명시되어 있습니다. 무조건 강제 한다고 하여 질의처리가 강제하지는 않고 비용계산으로 최소비용이 되는 것을 선택하려 합니다.

    이러한 이유로, 예를 주신 select * from 테이블 A의 경우 강제인덱스명보단 fullscan이 적절하다고 판단할 수 있겠습니다. 질의 처리기가 여러 요소를 종합하여 성능에 유리하도록 판단하게 됩니다.

    2. WHERE절에 컬럼2에 대한 조건이 들어간 경우에도 인덱스를 타지않고 반드시 컬럼1(인덱스 순서 1번째 컬럼)이 WHERE절에 조건문으로 들어가야 인덱스를 정상적으로 타는 현상
    --> 인덱스 생성이 컬럼1,컬럼2,컬럼3으로 생성하였음으로, 조건절에 컬럼1이 존재해야 하며, 컬럼2조건절일 때 인덱스를 사용하고 싶다면, (컬럼2,컬럼3) 조합으로 인덱스를 생성해 보시기 바랍니다.

    CUBRID의 실행계획은 최소비용을 계산하여 실행계획을 수립하며, 이러한 비용을 확인하시기 바랍니다.

    감사합니다.

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views51
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4458
    read more
  3. 시스템 테이블 db_serial 복사 여부

    Date2019.04.16 By왜안왔어 Views112
    Read More
  4. Cubrid stored procedure 스케쥴 등록 형식

    Date2023.04.17 ByRoy Views112
    Read More
  5. 기능 문의

    Date2019.04.12 By호란 Views112
    Read More
  6. 시리얼 생성 시 class_name, attr_name, started 컬럼 값을 변경하고 싶습니다.

    Date2023.11.01 Bygetpost Views111
    Read More
  7. cubrid는 처음 써보는데 궁금한 점이 있네요

    Date2022.05.31 Byyong4 Views111
    Read More
  8. 테이블별 row 개수를 조회하는 쿼리

    Date2023.10.18 Bycncn Views111
    Read More
  9. 10.1 ==> 10.2 버전 업그레이드를 준비 중인데요.

    Date2020.03.26 ByPhilip Park Views110
    Read More
  10. 라라벨 프레임워크에서 Unsupported driver [cubrid] 표시 문의

    Date2022.03.22 Bydevlsy Views110
    Read More
  11. 오라클의 SUBSTRB 기능 문의

    Date2023.12.26 By방글이 Views110
    Read More
  12. 에러코드 -51 질문드립니다.

    Date2023.12.01 Bykkkkwwakji Views110
    Read More
  13. 특수문자 컬럽값 관련 Python 오류 (*추가 - 증상재현 관련)

    Date2022.09.15 By오수범 Views110
    Read More
  14. 서버접속 url권한설정

    Date2020.07.13 By폭스소프트 Views109
    Read More
  15. merge 쿼리 속도개선

    Date2023.06.08 Byleeee Views109
    Read More
  16. 같은 그룹에 속한 OS계정에서의 csql접속

    Date2023.11.22 Byf0081 Views109
    Read More
  17. [CUBRID Admin] ENUM 데이터 내보내기

    Date2023.11.14 Bytree1891 Views109
    Read More
  18. Cubrid 물리명 길이 제한 값이 어떻게되나요?

    Date2023.09.05 By엘L Views109
    Read More
  19. 비밀번호 변경 오류

    Date2023.08.18 Bydfahwh Views109
    Read More
  20. 큐브리드 CCI API 사용함에 있어서 연결 유지 및 연결 검증에 대한 방법이 있나요?

    Date2020.03.31 By정크 Views108
    Read More
  21. SQL 행, 10분이상 지연 시 해제 및 설정 방법 문의 드립니다

    Date2023.12.06 Bykdman Views108
    Read More
  22. (python)centOS7 docker 연결 문의입니다.

    Date2021.11.01 By리얼비 Views108
    Read More
Board Pagination Prev 1 ... 172 173 174 175 176 177 178 179 180 181 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales