* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 64bit | |
CUBRID 9.3 (9.3.2.0016) (64bit release build form Windows_NT) | |
CUBRID Manager 9.3.6.001 (64bit) | |
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요.
큐브리드 매니저에 표시되는 질의 실행 계획에 대해 문의 드리려고 합니다.
A 테이블 데이터를 조회할 때 조건절이 1개일 경우와 2개일 경우,
같은 조회시간 (0.000초) 같은 인덱스, 같은 비용 (3)이 나오는데, 카디널리티만 다르게 나올 경우에 카디널리티가 높은 (9) 쿼리를 사용해야 하는지, 낮은 (1) 쿼리를 사용해야 하는지 궁금합니다.
전체 레코드 건수는 80만건 이상, 조건에 맞게 나오는 결과 건수는 6건 입니다.
감사합니다.
안녕하세요.
보내주신 내용을 기반으로 답변을 드리면 아래와 같습니다.
80만건에서 6건이 걸러지는 전체 건수에서의 0.00075%의 선택도를 가지기 때문에 둘 다 좋은 조건 또는 똑똑한 조건으로 보입니다.다만, 카디널리티가 높다는 것은 선택(출력)되는 Row 건수가 많다는 의미로 해당 선택도 비율을 고려한다면 카디널리티가 높은(9) 조건이 유리할 것으로 보입니다.(9건에서 3건은 체크에 따라 버려지고 6건 취함).
유념하셔야 할 부분으로 상수 조건에 따라 유동적일 수 있으니(선택도 및 카디널리티 변동) 이점 유념해 주시길 바랍니다.