두쿼리의 성능에 대해서 질문 0 2 660

by hUmaN [Oracle Tuning] [2017.11.20 12:30:41]


 SELECT a.detail_pos,
         a.cut_type,
         a.cut_len,
         a.product_id,
         a.status
    FROM setup_cut_sched_list a, gtrax_mt b, res_material m
   WHERE     b.product_id = NVL (m.parent_product_id, m.product_id)
         AND a.product_id = b.product_id
         AND b.zone_name = 'Z_1170'
         AND b.piece_pos_in_place = 1
         AND a.cd_id = '1'
ORDER BY 1


위에있는 쿼리를 아래쿼리처럼 고칠경우 성능이 증가할 수 있을까요?

아니면 더 나빠지려나요?

 

 SELECT a.detail_pos,
         a.cut_type,
         a.cut_len,
         a.product_id,
         a.status
    FROM setup_cut_sched_list a
   WHERE     A.PRODUCT_ID =
                (SELECT B.PRODUCT_ID
                   FROM gtrax_mt b, res_material m
                  WHERE     b.product_id =
                               NVL (m.parent_product_id, m.product_id)
                        AND B.ZONE_NAME = 'Z_1170'
                        AND B.PIECE_POS_IN_PLACE = 1)
         AND a.cd_id = '1'
ORDER BY 1

 

by 우리집아찌 [2017.11.20 16:21:00]

PRODUCT_ID가 한건인가요?

성능이 문제가 아니라 PRODUCT_ID 여러 건 반환 할 경우 에러 날텐데요...

 


by hUmaN [2017.11.20 16:40:33]

넵.

PIECE_POS_IN_PLACE=1이 한건만 반환하게 만들어줍니다.

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