クエリ バージョン 2 が非常に高速なのはなぜですか?
DB エンジンがテーブル値関数の "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;