DB2 처음 사용합니다.
쿼리문은 다음과 같습니다.
SELECT
concat(RTRIM(IFNULL(PT01A06,'')),
concat(RTRIM(IFNULL(PT01A07,'')),
concat(RTRIM(IFNULL(PT01A08,'')),
concat(RTRIM(IFNULL(PT01A09,'')),RTRIM(IFNULL(PT01A10,''))
))))as PT01A06_10,
PT01A6711,
concat(RTRIM(IFNULL(PT01A01,'')),
concat(RTRIM(IFNULL(PT01A02,'')),
concat(RTRIM(IFNULL(PT01A03,'')),
concat(RTRIM(IFNULL(PT01A04,'')), RTRIM(IFNULL(PT01A05,''))
)))) as PT01A01_05,
PT01A52,PT01A14,PT01A15,PT01A16,
b.PT05D01,b.PT05D26,b.PT05D03
FROM
(
SELECT * FROM PROSADM.PHT01AB
WHERE
concat(RTRIM(IFNULL(PT01A06,'')),
concat(RTRIM(IFNULL(PT01A07,'')),
concat(RTRIM(IFNULL(PT01A08,'')),
concat(RTRIM(IFNULL(PT01A09,'')),RTRIM(IFNULL(PT01A10,''))
)))) LIKE 'E408%' AND
PT01A06 = 'E' AND
PT01A44 = '7' AND
PT01A6711 BETWEEN 20040801 AND 20040831
)AS a
LEFT JOIN PROSADM.PHT05DB AS b
ON
a.PT01A01 = SUBSTR(b.PT05D07,1,1)AND
a.PT01A02 = SUBSTR(b.PT05D07,2,1)AND
a.PT01A03 = SUBSTR(b.PT05D07,3,1)AND
a.PT01A04 = SUBSTR(b.PT05D07,4,1)AND
a.PT01A05 = b.PT05D08
위의 쿼리문을 수행하면 수행은 됩니다. 결과값은 약 13000개 정도가
나옵니다.
그런데 수행시간이 너무 오래걸립니다.
무엇때문에 오래 걸리는지 알고 싶습니다..concat때문에 왜 걸리는지
아님ifnull이나 그것도 아니면
조회조건에서 like검색때문인지.아니면 또다른 문제점이 있는지..좀
가르쳐 주세요..디비 고수님들 부탁드립니다.
|