Почему версия Query Version 2 намного быстрее?
Я подозреваю, что БД-движок многократно вызывает функцию "GetUsageStatistic" в таблице значений, так что есть способ сообщить движку, что "GetUsageStatistic" является детерминированным и его следует вызывать только один раз?
Запрос версии 1
--Takes ~10 minutes
select *
from RosterLevel r
left join GetUsageStatistics( @mindate, @maxdate ) usage on r.UserID = usage.UserID;
Версия запроса 2
--Takes ~10 seconds
select * into #usage from GetUsageStatistics( @mindate, @maxdate );
select *
from RosterLevel r
left join #usage on r.UserID = #usage.UserID;