내가 큰 가입하의 15 테이블이 있습니다. Simplified 그것은 다음과 같습니다
WITH CTE AS
(
SELECT A.ID,
B.K,
X.Date,
X.ID,
ROW_NUMBER() OVER (PARTITION BY A.ID ORDER BY X.date ASC, x.id ASC) RN
FROM A
INNER JOIN B ON A.ID = B.ID
INNER JOIN C ON B.ID = C.ID
LEFT JOIN X ON (X.G = A.ID
OR X.H = B.ID
OR X.I = C.ID)
)
SELECT *
FROM CTE
WHERE RN = 1
실행 시간은 1 초 주로하기 때문에 마지막에 가입하의 X
. 중복을 피하기 위해 추가 ROW_NUMBER
부분으로 CTE.
수있는 방법을 최적화이 바람직하게 사용하는 ANSI SQL 기 때문에서 실행 되는 SQL Server Oracle?