我在一个数据库上有一个存储的proc,我需要从实体框架中调用它n次。
public Points GetResults(Share share, DateTime startDate, DateTime endDate)
{
using (var ctx = new MyDatabaseEntities())
{
int? stockId = GetID(share, endDate);
var data = ctx.GetData(stockId, 123, startDate, endDate, -23, 14, 3);
var selectedPoints = data.Where(a => a.Date.HasValue && a.Value.HasValue).ToDictionary(a => a.Date.Value, a => a.Value.Value);
return new Points(selectedPoints);
}
}我必须调用n个份额(500个份额,500个呼叫)。我发现它目前对我来说是一个性能瓶颈。在存储的proc中有很多逻辑,我不能将它们移出proc。有没有人有什么建议来加速这个过程呢?或者我只是因为需要调用这个过程n次而搞砸了?
发布于 2011-03-05 00:58:03
如果存储过程只需要一个StockId,而您需要很多次的结果,那么您别无选择,只能调用它500次,这总是会很慢。
实际上,您需要考虑修改SP,我建议您根据所使用的数据库引擎来查看表值参数。
https://stackoverflow.com/questions/5196742
复制相似问题