이 응용 프로그램의 일부에서이 문을 사용했습니다. LIKE '%%'는 검색 매개 변수가 전송되지 않았기 때문에 비어 있으므로 모든 결과에서 가져옵니다.DB2 SQL 팁/힌트
나는 여전히 데이터베이스 전체에 대한 초보자이며 진술을 향상시키기위한 조언이 있는지 궁금해하고 있습니까?
나는 그것이 끔찍해 보일 것이라고 확신하지만 나에게 쉽게가주세요!
업데이트 : 대부분이 성능 향상을 위해 최선을 다하고 있습니다. 필자는 이미 DB2 고문을 사용하고 내가 작성해야한다고 말한 키를 작성했습니다. 그게 도움이되었지만 내가 기대했던 것보다 여전히 느린 것입니다.
감사합니다.
SELECT * FROM
(
SELECT rownumber() OVER (ORDER BY pgmajdsc, item) AS ROW_NUM,
line, item, pgmajdsc, manufacturer
FROM
(
SELECT iline AS line, iitem AS item, pgmajdsc, ldesc AS manufacturer
FROM itemmast
LEFT JOIN itemweb on iline=line and iitem=item
JOIN linemst ON iline=lline
LEFT JOIN custord ON opline=iline AND opitem=iitem AND opcust='1234'
LEFT JOIN cartwdtl ON cwline=iline and cwitem=iitem and cwusr='foo' AND cwcust='1234'
LEFT JOIN itematr ON iline=ialine AND iitem=iaitem
LEFT JOIN prodgrp ON iaclass=pgclass
WHERE ico = 01
AND iecomm = 'Y'
AND (UPPER(ITEMDESC) LIKE '%%' OR UPPER(PRODDESC) LIKE '%%' OR
LINE LIKE '%%' OR UPPER(MFGNAME) LIKE '%%' OR ITEM LIKE '%%' OR
PRODNAME LIKE '%%' OR IDESC1 LIKE '%%' OR IDESC2 LIKE '%%' OR
IMFGNO LIKE '%%' OR IITEM LIKE '%%')
) AS TEMP
) AS ROW_NUM
WHERE ROW_NUM BETWEEN 0 AND 25
ORDER BY pgmajdsc, item
포맷팅 외에도 개선하고 싶은 것은 무엇입니까? –
당신은 다른 줄로 구분하여 더 읽기 쉽도록 할 수 있습니다 : D – Ruben
@Bead이 쿼리를 다시 포맷해야만 사람이 읽을 수 있고 DB2 파서도 해석 할 수 있습니다. 그 외에, 당신은 **이 질문에 ** 특정 질문을하도록이 질문을 다시 말해야합니다. 현재 당신이 대답하려고하는 것이 명확하지 않습니다. –