서브쿼리 질문드립니다. 0 7 772

by 밤나무 [SQL Query] [2017.09.07 17:43:50]


안녕하세요 서브쿼리 하나 관련해서 질문드립니다.

사업소별로 갯수를 확인해서 더해야되는 쿼리를 만들었는데, 같은 테이블을 중복으로 엑세스하는 문제로 인하여 성능이 지연이 되는거 같은데 서브쿼리를 어떻게 수정해야될지 도움 부탁드립니다.

SQL은 아래와 같습니다.

select (A.CNT + B.CNT) CNT
from (select count(1) cnt
from deliver a
where a.fk_off_cd =:1
and a.year> to_char(sysdate, 'yyyy')-2
and a.fk_dep_off_cd =:2
and a.fk_dep_cd =:3
and a.fk_deli_sts_cd in( select no from code where tp='0014' and cd in('00001','00002')))A
(select count(1) cnt
from deliver a
where a.FK_OFF_CD=:4
and a.year> to_char(sysdate, 'yyyy')-2
and a.fk_dep_off_cd =:5
and a.fk_dep_cd =:6
and a.fk_deli_sts_cd in( select no from code where tp='0014' and cd ='0004')
and (a.deli1_dt = to_char(sysdate, 'yyyymmdd')
or a.deli2_dt = to_char(sysdate, 'yyyyymmdd')
or a.deli3_dt = to_char(sysdate, 'yyyymmdd')))B

조언부탁드립니다. 감사합니다.

 

 

by jkson [2017.09.07 18:19:06]

:1 랑 :4

:2 랑 :5

:3 랑 :6

이 각각 다른 값이 올 수도 있는 건가요? 아니면 같은 값?


by 우리집아찌 [2017.09.07 18:22:38]

:1 , :2 , :3

:4 , :5 , :6 

위아래 파라미터가 같은가요? 


by jkson [2017.09.07 18:33:11]

언능 퇴근하세요.


by 우리집아찌 [2017.09.07 21:40:03]

난 집이야 ㅋㅋ


by 밤나무 [2017.09.07 18:58:36]

변수는 같을경우가 있고 다른경우가 존재합니다 다른경우 sql이 많이 달라지나요?


by jkson [2017.09.08 12:11:37]

서로 다른 데이터를 찾고 있는 거라면

적절한 인덱스를 활용하여 탐색한다면 중복 탐색이 되지 않을 것이고

같은 데이터를 찾는 거라면 인덱스 탐색일 때도 약간은 성능적으로 손해보는 부분이 있겠네요.

같은 데이터든 아니든 인덱스 탐색이 아니라 테이블 풀스캔이라면 중복탐색이 되겠구요.

실행계획을 올려주시는 게 좋을 것 같습니다.


by 밤나무 [2017.09.08 13:35:11]

핸드폰이라 사진이 안올라가서실행계획 새로운 글로 등록 했습니다

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