我想加快经常使用的查询。使用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 2010-04-12 23:49:04
谢谢!答案就在那里。 – Grammarian 2010-04-13 00:38:19