【发布时间】:2011-05-11 21:52:33
【问题描述】:
任何人都知道为什么使用活动记录与 simplerepository 进行查询时 linq 查询的速度要慢 6 倍? 下面的代码运行速度比我使用简单存储库查询数据时慢 6 倍。这段代码循环执行1000次
提前致谢
string ret = "";
// if (plan == null)
{
plan =VOUCHER_PLAN.SingleOrDefault(x => x.TENDER_TYPE == tenderType);
}
if (plan == null)
throw new InvalidOperationException("voucher type does not exist." + tenderType);
seq = plan.VOUCHER_SEQUENCES.First();
int i = seq.CURRENT_NUMBER;
seq.CURRENT_NUMBER += seq.STEP;
seq.Save();
【问题讨论】:
-
你比较过为 ActiveRecord/SimpleRepository 执行的 SQL
-
你按照亚当的建议做了吗?如果您找到答案,我很想知道。
-
有趣的是,我对 SQL 进行了分析,没有一个调用需要超过几毫秒的时间。它似乎在应用程序的某个地方遇到了瓶颈:/
-
您是否注意到您的 VOUCHER_PLAN 构造函数被调用了很多次?您可能会在其中进行某种 ToList() 实例化所有值,但除了尝试 SimpleRepository 之外,我真的不知道如何避免它。
-
我有同样的问题,这让我发疯。获取 350 条记录的列表和查询/otw 时间甚至无法衡量。但是,由于未知原因,创建对象仍然需要 2 多秒。
标签: subsonic performance