두 개의 결과 집합에서 Union All을 수행하고 각 결과 집합이 마스터 테이블의 필터링 된 하위 집합과 동일한 내부 조인에서 파생되는 경우 쿼리 엔진이 "적중 "주인 표는 한두 번?DB2 용 SQL 최적화
예 : 나는 모든 문이의 작은 부분 집합 일하게 될 것 UNION 있도록 마스터 테이블의 필터링 된 결과를 저장할 임시 테이블을 만들 도움이 될 것입니다 있는지 확인하기 위해 노력하고
SELECT m.col4, st1.col2
FROM master m
INNER JOIN subTable1 st1
on st1.col1 = m.col1
WHERE m.col1 = 'a' and m.col2 = 123 and m.col3 = "a1b2"
UNION ALL
SELECT m.col4, st2.col2
FROM master m
INNER JOIN subTable2 st2
on st2.col1 = m.col1
WHERE m.col1 = 'a' and m.col2 = 123 and m.col3 = "a1b2"
마스터 레코드는 마스터 테이블의 필터링을 두 번 수행하는 대신에 일 수 있습니다. 위의 예제에서 일 수 있습니다.
미리 조언 해 주셔서 감사합니다.
어떤 DB2를 사용하고 있습니까? DB2 for i, DB2 LUW 또는 z/OS 용 DB2? – WarrenT