쿼리문 ORDER BY 질문드립니다. 0 1 2,676

by ymym [Oracle Tuning] ORACLE [2019.02.27 14:07:41]


        SELECT TO_CHAR(TO_DATE(SALE_DTE,'YYYYMMDD'),'YYYY-MM-DD') SALE_DTE, CUST_NME, ITEM_NME, 
               (ITEM_THI_VAL||'*'||ITEM_HEI_VAL||'*'||ITEM_HOR_VAL||'*'||ITEM_VER_VAL) STANDARD,
               TO_CHAR(SALE_PRC,'999,999') SALE_PRC, SALE_QTY, TO_CHAR(SALE_AMT_TOT,'999,999,999') SALE_AMT_TOT
          FROM MKT0TB015 A, MKT0TB060 B, MST0TB002 C
         WHERE A.ITEM_NBR = B.ITEM_NBR
           AND A.CUST_NBR = C.CUST_NBR
      ORDER BY 1, 2 DESC
      
     ORDER BY 안하면 0.4초 걸리는데 ORDER BY 하면 5초나 걸리네요. 속도좀 빠르게 하는방법 없나요? 인덱스가 SALE_DTE에 있던데 아직 튜닝은 배우지를 않아서.. 모르겠네요.. SALE_DTE 컬럼의 인덱스이름은 SYS_C0012496 입니다..

by LKJ [2019.03.05 13:04:24]
이렇게 하면 좀 빠르려나 모르겠습니다.
수고하세요.

SELECT X.*
 FROM (
           SELECT TO_CHAR(TO_DATE(SALE_DTE,'YYYYMMDD'),'YYYY-MM-DD') SALE_DTE, CUST_NME, ITEM_NME, 
                  (ITEM_THI_VAL||'*'||ITEM_HEI_VAL||'*'||ITEM_HOR_VAL||'*'||ITEM_VER_VAL) STANDARD,
                  TO_CHAR(SALE_PRC,'999,999') SALE_PRC, SALE_QTY, TO_CHAR(SALE_AMT_TOT,'999,999,999') SALE_AMT_TOT
                 , ROW_NUMBER() OVER (ORDER BY SALE_DTE, CUST_NME DESC) AS RNK
             FROM MKT0TB015 A, MKT0TB060 B, MST0TB002 C
            WHERE A.ITEM_NBR = B.ITEM_NBR
              AND A.CUST_NBR = C.CUST_NBR
         ) X

 

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