2011-05-05 3 views
0

다음 쿼리를 실행하면 dbo.VerySlowTableValuedFunction()이 여러 번 호출됩니다. 느린 함수가 한 번만 호출되도록 수정하려면 어떻게해야합니까?CTE (Common Expression Table)에서 NOEXPAND를 강제 실행하는 방법?

with DatesT as (
    ....list of dates.... 
), slowT as 
(
    select * 
    from dbo.VerySlowTableValuedFunction() 
) 
select DateS, (
    select top 1 [dataseries] 
    from [dataseries] 
    where DateS = p.DateS 
    order by DateS desc 
) as slowData 
from DatesT p 
+0

임시 테이블에 slowT를 저장하는 것이 하나의 방법 일 것입니다. – Nestor

답변

1

이이이 기능으로 요청 된 SQL 서버 2008 의로 할 수있는 방법은 아니지만 ...하지만 그것이 나다에 포함됩니다 분명하지 않다.