안녕하세요...
쿼리 속도 때문에 이렇게 문의를 드립니다.
DB는 제가 잘 몰라서요. 기본적인 것만 하다보니 ㅠㅠ
=========================== 사용중인 쿼리====================================
SELECT DISTINCT STCK.BASI_DT, DLCO.DLCO_NM, INFO.GDS_NM, '['+ LEFT(CLFCD.CLF_NM,2) +']' AS CLF_NM ,
'PRE_GB' = CASE WHEN STCK.PRE_GB = 'A' THEN '미' WHEN STCK.PRE_GB = 'B' THEN '선' WHEN STCK.PRE_GB = 'C' THEN '대여' END,
CYOVQ , EWHQ , XWHQ , HYOVQ,
CASE WHEN RMK IS NULL THEN '' ELSE '(' + REPLACE(RMK, ' ', '') + ')' END RMK
FROM TBL_PRE_DD_STCK STCK
LEFT JOIN (SELECT DLCO_CD, DLCO_NM FROM VDLCO) DLCO ON STCK.DLCO_CD = DLCO.DLCO_CD
LEFT JOIN TBL_GDS_INFO INFO ON STCK.GDS_CD = INFO.GDS_CD
LEFT JOIN (SELECT DTLS_CD_NM AS CLF_NM , DTLS_CD_VAL AS CLF_CD FROM TBL_COM_CD_DTLS WHERE GRP_CD = '00043') AS CLFCD
ON STCK.GDS_CLF = CLFCD.CLF_CD
WHERE STCK.BASI_DT > '20090101'
AND INFO.MAK_CD = '1'
AND NOT HYOVQ = 0
AND EXISTS
( SELECT * FROM
( SELECT MAX(BASI_DT) AS BASI_DT, DD.DLCO_CD, GDS_CD, PRE_GB
FROM TBL_PRE_DD_STCK DD
JOIN (SELECT DLCO_CD FROM VDLCO) DLCO ON DD.DLCO_CD = DLCO.DLCO_CD
WHERE NOT (EWHQ = 0 AND XWHQ = 0) AND DD.DLCO_CD <> 0
GROUP BY DD.DLCO_CD, GDS_CD, PRE_GB ) A
WHERE STCK.DLCO_CD = A.DLCO_CD
AND STCK.GDS_CD = A.GDS_CD
AND STCK.BASI_DT = A.BASI_DT
AND STCK.PRE_GB = A.PRE_GB
)
ORDER BY STCK.BASI_DT, DLCO_NM, GDS_NM, CLFCD.CLF_NM, STCK.PRE_GB
VDLCO 는 뷰 입니다. 인덱스는 걸려 있지 않습니다.
===========================================================================================
현재 사용중인 쿼리 입니다..
그런데 이쿼리가 속도가 너무 안나오네요.. 5분이 지나도 안나옵니다.
제가 만든건 아니고 기존에 있던 쿼리 인데요.. 이쿼리를 실행 하면 DB 가 뻗을 정도네요..
이것저것 보고는 있는데.. 잘 안되네요..
혹시 쿼리 수정 이나 테이블 인덱스 부분을 수정해서 속도가 좀 나아질까요.??
필요하시면 테이블 인덱스 부분 올려 드리겠습니다.
고수님들 초보좀 도와주세요~~!!
|