Почему запрос выполняется намного быстрее, когда я (вручную) кэширую результаты возвращающей табличное значение функции во временной таблице?

Почему версия запроса 2 намного быстрее?

Я подозреваю, что механизм БД вызывает табличную функцию «GetUsageStatistic» несколько раз, поэтому есть ли способ сообщить механизму, что «GetUsageStatistic» является детерминированным и должен вызываться только один раз? Версия запроса 2

--Takes ~10 seconds
select * into #usage from  GetUsageStatistics( @mindate, @maxdate );
select *
from RosterLevel r
left join #usage on r.UserID = #usage.UserID;
10
задан Triynko 2 June 2011 в 21:39
поделиться