MSSQL "CROSS APPLY"와 "OUTER APPLY" 테이블반환함수 JOIN도 가능하네?


MSSQL "CROSS APPLY"와 "OUTER APPLY" 테이블반환함수 JOIN도 가능하네?

쿼리를 작성하다보면 필수적으로 사용하게 되는 JOIN구문. JOIN을 어떻게 쓰느냐에 따라 속도/성능 차이가 발생하는 등 굉장히 중요하고 많이 쓰이는 구문인데요. 오늘은 JOIN과 동일한 결과값을 낼 수 있고 상황에 따라 조금 더 나은 성능을 발휘할 수 있는 CROSS APPLY와 OUTER APPLY에 대해서 알아보려고 해요. CROSS APPLY와 OUTER APPLY CROSS APPLY와 OUTER APPLY는 결과적으로는 JOIN 과 동일한 결과값을 반환할 수 있습니다. 하지만 JOIN과는 다른 실행계획을 가질 수 있으며 일반 INNER/OUTER JOIN으로는 수행 불가능한 구문을 수행시켜주기도 하죠. 가장 큰 특징 두 가지는, 1. 서브쿼리에 외부테이블의 컬럼을 인자로 사용할 수 있다 2. 테이블 반환함수의 인자값으로 외부테이블의 컬럼을 적용하여 JOIN과 같은 결과값을 낼 수 있다 추가적으로 상황에 따라 JOIN보다 더 좋은 성능을 발휘할 수도 있지만 위 두 가지 상황...


#apply #join #mssql #outerapply #sqld #sqlp #sqlserver #쿼리

원문링크 : MSSQL "CROSS APPLY"와 "OUTER APPLY" 테이블반환함수 JOIN도 가능하네?