为什么查询版本 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;