delete 시 in절에 컬럼이 두개일경우 느림현상

by 겸둥이k posted Oct 18, 2021


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

OS
Window10
CUBRID Ver.
10.1
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력


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

 

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


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

delete from test_TOT C where (C.PRMISN_NO,C.OWNR_NO ) IN(
select {A.PRMISN_NO ,B.OWNR_NO}
FROM
        test_TEMP A,
        test_TEMP B,
        test_TEMP C
WHERE  A.PRMISN_NO = B.PRMISN_NO  AND B.OWNR_NO = C.OWNR_NO    
 );

위와 같이 쿼리를 돌릴경우  delete 조건에 풀스캔이 일어나서 상당히 속도가 느립니다.

하지만 조건절에 컬럼을 하나만 넣었을시 풀스캔이 타지만 C에대한 인덱스 스캔이 탑니다. 

 

컬럼을 두개로 했을시에도 인덱스를 태우는 방법이 있을까요 

 

조건컬럼 두개와 하나만 했을시 실행계획 올립니다.

답변부탁드립니다.

 

 


Articles

1 2 3 4 5 6 7 8 9 10