쿼리 성능 및 변형 질문 0 2 1,000

by 밤톨이 [SQL Query] 성능 튜닝 [2020.04.17 15:05:04]


SELECT (SELECT QB.COL1
          FROM TAB3 QB    
         WHERE QB.COL2 IS NULL 
           AND LD.COL2 = QB.COL3    
           AND QB.COL4 = 'R' 
           AND ROWNUM = 1
        ),
        (SELECT QB.COL5
          FROM TAB3 QB    
         WHERE QB.COL2 IS NULL 
           AND LD.COL2 = QB.COL3    
           AND QB.COL4 = 'R' 
           AND ROWNUM = 1
        ),
        (SELECT QB.COL6
          FROM TAB3 QB    
         WHERE QB.COL2 IS NULL 
           AND LD.COL2 = QB.COL3    
           AND QB.COL4 = 'R' 
           AND ROWNUM = 1
        )
  FROM TAB1 LM
       JOIN TAB2 LD
         ON LM.COL1 = LD.COL1
  ;

 

위 스칼라 서브쿼리로 같은 테이블 호출하는 쿼리를 만들었습니다.

이것을 한번만 호출하도록 하고 싶습니다.

 

생각하고 있는것은 인라인뷰와 조인인데

쿼리 변형을 어떻게 하면 좋을지 조언 부탁드립니다.

by 마농 [2020.04.17 15:16:40]

쿼리의 일부만 보여주셔서 판단하기 힘듭니다.
서브쿼리 3개만 조회할 리는 없을 것 같은데요? 메인 항목도 같이 조회할 것 같구요.
테이블간의 관계를 알아야 합니다.
메인 : 서브쿼리 관계가 1:1 관계라면 조인으로 풀면 되지만
1:다 관계라면 단순 조인으로 풀기 까다롭습니다.
ROWNUM = 1 조건을 보면 1:다 관계인 것 같기도 하고.
ROWNUM = 1 조건이 특별한 의미를 가지는 것인지도 불분명해 보이고요.
정보가 부족합니다.


by 부쉬맨 [2020.04.17 16:54:56]
SELECT
QB.COL1
,QB.COL5
,QB.COL6
  FROM TAB1 LM,TAB2 LD, TAB3 QB
         where LM.COL1 = LD.COL1
             and  QB.COL2 IS NULL 
           AND LD.COL2 = QB.COL3    
           AND QB.COL4 = 'R' 
           AND ROWNUM = 1

  ;

마농님이 말씀하신거처럼

이렇게 작성해도될듯한데요?

 

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