쿼리 튜닝 및 실행계획 관련 문의 드립니다.

by kikiki767 posted Dec 23, 2022


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

OS
 Windows 10 64bit
CUBRID Ver.
 CUBRID 9.3 (9.3.9.0002)
CUBRID TOOL Ver.
 SQLGate for CUBRID Developer 9.17.1.0
응용 환경(API)
java, php, odbc 등 입력


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

 

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


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------


귀사가 제공한 정기교육 파일(CUBRID_정기교육.pdf)에서 "질의 튜닝" 부분을 보고 있습니다.

 

그 중 "스칼라 쿼리 Outer join" 부분이 이해가 되지 않아 문의를 드립니다.

 

 

14.JPG

 

위 튜닝 전 쿼리는 메인 쿼리에서 반환되는 개수만큼(8,633)만큼 스칼라 서브쿼리가 수행되는 쿼리이며 비용은 46 입니다.

 

이 쿼리를 Outer 조인으로 바꾼 결과가 아래인데, 비용을 보면 305입니다.

 

 

15.JPG

 

 

 

튜닝 내용 설명을 보면 메인 쿼리에서 반환되는 결과 건수가 많은 경우는 호출 횟수를 줄이도록,

스칼라 서브쿼리보다 outer join을 사용하여 성능을 개선할 수 있다고 나와 있습니다.

 

근데 오히려 비용은 outer join으로 수행 시 더 높게 나오는데 이해가 되지 않습니다.

비용이 낮은 플랜을 고르는게 맞지 않나요?

 

아니면 쿼리 수행 시간으로 판단하는게 맞나요?

스칼라 서브쿼리는 실행 시 0.8 이상 나오고, outer join은 0.5~0.6초 정도 나오네요..

 

 

 

 


Articles

5 6 7 8 9 10 11 12 13 14