안녕하세요?
DB2 SQL tuning에 관련하여 질문드립니다.
우선 현재 들어 오고 있는 query에 OR 절이 수십번 (평균 40여번 ) 반복되어 들어 옵니다.
예를 들면
select pt.Id, cd.Status, ch.Name
from parent pt, child ch
where pt.ChId = ch.Id
and pt.StatusId = 1 or pt.StatusId = 5 or pt.StatusId = 12 ......... pt.StatusId = 234 ; -- <== 이런식으로 OR 절이 수십번 계속 반복됩니다.
Oracle의 경우 (적어도 9i 에서는 ) OR절과 IN절의 Query plan 및 cost는 차이가 없으나
실제 index를 검색하고 검색된 값을 return하는 과정에 차이가 있어
값을 명확히 지정할 수 있는 경우에는 IN 절을 사용할 것을 추천한다고 알고 있습니다.
DB2에서는 Where 절의 조건으로 IN과 OR를 썼을 때, 이 둘의 차이가 있는지 궁금합니다.
감사합니다.
|