我在数据库上有一个存储过程,我需要在Entity Framework中多次调用它。
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。有没有人有任何提示加快这一点?或者我只是被惹恼了,因为我需要多次调用这个程序?
答案 0 :(得分:1)
如果存储过程只需要一个StockId并且您需要多次结果,那么您别无选择,只能将其调用500次,这总是会很慢。
你真的需要考虑修改SP,我建议根据使用的数据库引擎查看表值参数。