database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41964 게시물 읽기
No. 41964
스칼라 서브쿼리를 아우터 조인으로
작성자
유경일(kiyou75)
작성일
2023-07-12 19:28
조회수
1,121

안녕하세요. 현재 속도가 너무 안나오는 쿼리가 있습니다. 

스칼라 서브쿼리(굵은부분) 이 부분이 100초 이상을 넘어갑니다. 이 부분을 아우터 조인이나, 속도를 개선할만한 방법이 없을지요.

-------------------- Query ----------------------------

SELECT *

  FROM (

       SELECT ROWNUM SEQ

            , MT.*

         FROM (

              SELECT A.REQ_NO

                   , A.REQ_ITEM_NO AS POSNV --싱위오더번호아이템 순번

                   , A.P_REQ_NO AS P_REQ_NO

                   , RMN_QTY - (

                     SELECT NVL(SUM(REQ_QTY),0)

                       FROM (

                            SELECT P_REQ_NO

                                 , REQ_QTY

                              FROM SALES.W_TB_DELIVERY_ORDER_MASTER ST

                             WHERE ST.P_REQ_NO = A.REQ_NO

                               AND REQ_STATUS = 'C'

                               AND ST.CUST_GB = CASE WHEN LENGTH(TEMP1) > 13 THEN '70' ELSE ST.CUST_GB END

                               AND USE_YN='Y'

                          )

                   ) AS RMN_QTY

                FROM W_TB_WOS_ORDER_MASTER M INNER JOIN SALES.W_TB_DELIVERY_ORDER_MASTER A ON M.ORDER_MASTER_ID = A.P_REQ_NO 

                WHERE A.RMN_QTY > 0

                 AND A.P_REQ_NO LIKE 'OMI%'

                 AND A.USE_YN = 'Y'

                 AND A.DLV_REQ_DT BETWEEN '20230709' AND '20230715'

               ORDER BY A.REQ_NO DESC

            ) MT

        WHERE RMN_QTY > 0

     )

ORDER BY P_REQ_NO DESC

이 글에 대한 댓글이 총 1건 있습니다.
SELECT *
  FROM (SELECT ROWNUM seq
             , mt.*
          FROM (SELECT a.req_no
                     , a.req_item_no AS posnv
                     , a.p_req_no AS p_req_no
                     , a.rmn_qty - NVL(SUM(st.req_qty), 0) AS rmn_qty
                  FROM w_tb_wos_order_master m
                 INNER JOIN sales.w_tb_delivery_order_master a
                    ON m.order_master_id = a.p_req_no
                  LEFT OUTER JOIN sales.w_tb_delivery_order_master st
                    ON st.p_req_no = a.req_no
                   AND st.req_status = 'C'
                   AND st.cust_gb = CASE WHEN LENGTH(st.temp1) > 13
                                         THEN '70' ELSE st.cust_gb END
                   AND st.use_yn = 'Y'
                 WHERE a.rmn_qty > 0
                   AND a.p_req_no LIKE 'OMI%'
                   AND a.use_yn = 'Y'
                   AND a.dlv_req_dt BETWEEN '20230709' AND '20230715'
                 GROUP BY a.req_no, a.req_item_no, a.p_req_no, a.rmn_qty
                HAVING a.rmn_qty - NVL(SUM(st.req_qty), 0) > 0
                 ORDER BY a.req_no DESC
                ) mt
        )
 ORDER BY p_req_no DESC
;
마농(manon94)님이 2023-07-17 12:54에 작성한 댓글입니다.
이 댓글은 2023-07-17 13:02에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41968쿼리 좀 도와주세요. 도저히 못 구하겠어요 [3]
김진수
2023-08-11
1140
41967쿼리 질문드립니다! [1]
뽕구파파
2023-08-08
562
41966SqL 도움 요청입니다. [2]
김진수
2023-07-25
880
41964스칼라 서브쿼리를 아우터 조인으로 [1]
유경일
2023-07-12
1121
41963조건에 따른 order by 설정 [3]
차상환
2023-06-16
3033
41962GLOBAL TEMPORARY TABLE COMMIT 옵션 변경가능 한지요 ? [1]
이규동
2023-06-15
2938
41961NLS_DATE_FORMAT변경관련 질문입니다.
우태열
2023-05-13
5067
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다