Query 튜닝 질문 0 4 683

by 티라미수꿀맛 [Oracle Tuning] [2020.10.28 17:00:47]


안녕하세요 튜닝에 관해 공부하는 학생입니다.

where 절에 

where (coulmn) like substring ('20160723',1,6) || '%' 이런식으로 조건이 걸려있는데

인덱스를 걸었을떄 || '%' 이 변형으로 인해 타지를 못하더라구요.

이럴떄는 어떻게 해야하나요?? substring을 지우고 between으로 바꿔야하나요?

by 마농 [2020.10.28 17:30:40]

"변형으로 인한 인덱스 못탐" 에 해당되지 않는 경우입니다.
"변형"이란 컬럼 변형을 의미합니다.  변형(컬럼) = 조건
컬럼 = 변형(조건) 형태는 이에 해당되지 않습니다.
인덱스를 타지 못하는 다른 이유가 있을 듯 합니다.


by 티라미수꿀맛 [2020.10.28 17:57:40]

감사합니다 마농님

그런데 || '%' 이 구문을 없애고 돌리면 실행계획에서 index를 타더라구요.

이거는 어떻게 보면 될까요 이해가 잘 안됩니다..


by 마농 [2020.10.28 18:25:09]

데이터량에 영향을 받을 수도 있습니다.
검색기간이 좁으면 인덱스 타고 넓으면 안탈 수 있습니다.
그런데. 오라클 맞나요? 오라클은 substring 이 아니고 substr 인데요?


by 티라미수꿀맛 [2020.10.29 10:30:38]

아 감사합니다.

substring 문법은 습관적으로 타이핑하다 풀네임을 적은거였습니다.

빠른 답변 감사드립니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입