【发布时间】:2016-01-14 18:31:39
【问题描述】:
我正在使用实体框架来调用存储过程。我有一个场景,这个过程被调用了 3000 次,然后对于这 3000 个存储过程调用中的每一个,另一个存储过程将被调用 1 到 100 次。总共需要大约20分钟。我想把时间减半。我可以做些什么来优化它吗?
基本上是这样的:
foreach (var parentObject in parents) //parents.count = 3000
{
int id = _efContext.prInsertParent(parentObject.Name, parentObject.values, etc..);
// Have to get SCOPE_IDENTITY() id to be able to add children
foreach (var child in parentObject.Children) //children count up to 100 items
{
_efContext.prInsertChild(id, etc..othervalues);
}
}
【问题讨论】:
-
就个人而言,我会重新考虑架构。 3000 次存储过程调用不应该是可接受的,而且在受到额外 100 次调用的指数影响时更是如此。那么,最坏的情况是 300,000 次调用?
标签: c# entity-framework stored-procedures bulkinsert