Я пытаюсь ускорить часто используемый запрос. Кажется, ответ был получен с помощью CompiledQuery
. Но когда я попытался скомпилировать версию, не было никакой разницы в производительности между скомпилированными и не скомпилированными версиями.Почему этот CompiledQuery не дает улучшения производительности?
Может кто-нибудь рассказать мне, почему использование Queries.FindTradeByTradeTagCompiled
не быстрее, чем с использованием Queries.FindTradeByTradeTag
?
static class Queries
{
// Pre-compiled query, as per http://msdn.microsoft.com/en-us/library/bb896297
private static readonly Func<MyEntities, int, IQueryable<Trade>> mCompiledFindTradeQuery =
CompiledQuery.Compile<MyEntities, int, IQueryable<Trade>>(
(entities, tag) => from trade in entities.TradeSet
where trade.trade_tag == tag
select trade);
public static Trade FindTradeByTradeTagCompiled(MyEntities entities, int tag)
{
IQueryable<Trade> tradeQuery = mCompiledFindTradeQuery(entities, tag);
return tradeQuery.FirstOrDefault();
}
public static Trade FindTradeByTradeTag(MyEntities entities, int tag)
{
IQueryable<Trade> tradeQuery = from trade in entities.TradeSet
where trade.trade_tag == tag
select trade;
return tradeQuery.FirstOrDefault();
}
}
Эта ссылка может помочь http://msdn.microsoft.com/en-us/magazine/ee336024.aspx – orandov
Спасибо! Ответ был там. – Grammarian